Обзор захвата изображения
Начиная с Mac OS 10.6, можно использовать ImageKit
и ImageCaptureCore
платформа, чтобы найти и управлять устройствами захвата изображения (камеры, сканеры и многофункциональные устройства, такие как камера/телефоны и принтер/сканеры).
Можно открыть браузер, динамично обнаруживающий все камеры и сканеры, присоединенные USB или доступные по сети. Можно ограничить браузер отображением только камер, только сканеров, только локальных, или только сетевых устройств или любой комбинации их. Вы можете выбрать любое доступное устройство с помощью браузера и можете открыть сеанс с выбранным устройством, чтобы перечислить и выбрать миниатюры, изображения, видео и другие файлы от камер, или управлять процессом сканирования сканеров.
ImageKit
обеспечивает полный UI для этих задач, позволяя Вам создать приложения, находящие и управляющие камерами и сканерами полностью путем перетаскивания Разработчика Интерфейса использования объектов.
ImageCaptureCore
обеспечивает те же возможности с помощью программируемого интерфейса, позволяя Вам записать бездисплейные приложения или обеспечить Ваш собственный UI. ImageCaptureCore
также включает некоторые средства управления, не доступные от ImageKit
, такой как выбор приложения по умолчанию для запуска, когда подключается камера.
Можно использовать обоих ImageKit
и ImageCaptureCore
в том же приложении. Например, Вы могли использовать ImageKit
обеспечить основной интерфейс и добавить дополнительное использование пользовательских элементов управления ImageCaptureCore
.
Создать ImageKit
приложение, соедините свой проект XCode с Кварцевой платформой. Для ImageCaptureCore
, соединитесь с QuartzFoundation. При использовании обоих добавьте обе платформы.
ImageKit
ImageKit
обеспечивает четыре класса захвата изображения:
IKDeviceBrowserView
— Браузер, выводящий на экран список доступных камер и сканеров. Браузер показывает и USB-устройства и сетевые устройства. Это выводит на экран их имена, типы и значки. Список обновляется динамично, поскольку устройства включены, демонтированы или переименованы. Тип устройства камеры включает телефоны с камерой (включая iPhone) и устройства чтения карт памяти. Тип устройства сканера включает многофункциональные устройства, такие как ФАКСЫ СКАНЕРА ПРИНТЕРА.IKCameraDeviceView
— Средство просмотра камеры, выводящее на экран имя и значок камеры, список доступных изображений, метаданные, таких как название картинки, дата, воздействие, и глубина цвета и ряд средств управления для вращения, удаляет или загружает изображения. Средство просмотра поддерживает представление списка и матричное представление миниатюр изображения.IKScannerDeviceView
— Средство просмотра, выводящее на экран имя и значок сканера и позволяющее Вам сканировать и получать изображения. Средства управления предоставлены, чтобы получить предварительный просмотр, идентифицировать и создать многократные дискретные изображения из единственного сканирования, повернуть или обрезать изображения и управлять аспектами сканирования, такими как пиксели на дюйм и глубина цвета.IKImageView
— Представление для отображения изображений, полученных из камеры или сканера.
Эти четыре класса доступны, поскольку перетаскивание возражает в ImageKit
библиотека для Интерфейсного Разработчика, таким образом, возможно создать приложение, просматривающее для и управляющее камерами и сканерами буквально, не пишущий строку кода. Для примера посмотрите Создание Приложения Используя ImageKit.
Добавление сканирования и захвата изображения к существующему приложению с этими классами требует, чтобы только несколько строк кода «связующего звена» интегрировали окно, созданное в Интерфейсном Разработчике в Ваше приложение.
ImageCaptureCore
ImageCaptureCore
платформа содержит классы, позволяющие Вам просматривать для устройств захвата изображения и управлять ими программно. Эти классы строго походят ImageKit
классы, но они не обеспечивают UI. Вместо этого у них есть методы, для которых Вы создаете делегатов, позволяя Вам принять безотносительно мер, которые Вы выбираете в ответ на события, на которые отвечают эти объекты.
Например, ImageCaptureCore
содержит класс браузера устройства, ICDeviceBrowser
. Это выполняет те же функции как ImageKit’s
IKDeviceBrowserView
— это динамично обнаруживает доступные устройства захвата изображения. Но вместо того, чтобы вывести на экран список устройств, это имеет методы такой как didAddDevice
и didRemoveDevice
когда браузер устройства обнаруживает устройство или видит демонтированное устройство, чьих делегатов вызывают.
Ваше приложение определяет эти методы делегата. Например, когда устройство обнаруживается, Ваша версия didAddDevice
вызывается. Это могло бы получить устройство и сохранить его в непостоянном массиве, затем продолжить отображать массив устройств с помощью табличного представления.
Точно так же ImageCaptureCore
содержит класс устройства камеры и класс устройства сканера, аналогичный ImageKit’s
представление камеры и представление сканера.
Весь ImageCaptureCore
классы поддерживают привязку Какао, таким образом, можно, например, использовать Интерфейсного Разработчика для присвоения собственного представления как делегат к ImageCaptureCore
объект браузера устройства, устраняя потребность создать весь UI программно.
Вы можете смешивание и подгонка ImageKit
и ImageCaptureCore
объекты в Вашем коде. Например, Вы могли бы использовать браузер устройства ImageKit, чтобы позволить пользователям находить и выбирать сканер, но использовать Ваш собственный UI для управления использованием сканера ImageCaptureCore
.
Можно записать ImageCaptureCore
приложение во всего нескольких дюжинах строк кода. Для примера посмотрите Создание Приложения Используя ImageCaptureCore.