Управление данными в 2D кварце

Управление данными является задачей, которую должно выполнить каждое графическое приложение. Для Кварца управление данными относится к снабжению данными к или получению данных от Кварца 2D подпрограммы. 2D подпрограммы небольшого количества Кварца перемещают данные в Кварц, такой как те, которые получают изображение или данные PDF от файла или другой части Вашего приложения. Другие подпрограммы принимают Кварцевые данные, такие как те, которые пишут изображение или данные PDF к файлу или предоставляют данные другой части Вашего приложения.

Кварц обеспечивает множество функций для управления данными. Путем чтения этой главы необходимо быть в состоянии определить, какие функции являются лучшими для приложения.

Кварц распознает три широких категории источников данных и мест назначения:

Сами данные, может ли представленный URL, объект CFData или буфер данных, быть данные PDF или данные изображения. Данные изображения могут использовать любой тип формата файла. Кварц понимает большинство общих форматов файла образа. Некоторые Кварцевые функции управления данными работают в частности с данными изображения, некоторые работают только с данными PDF, в то время как другие более универсальны и могут использоваться или для PDF или для данных изображения.

URL, CFData, и источники необработанных данных и места назначения обращаются к данным вне области Mac OS X или технологий графики iOS, как показано на рисунке 10-1. Другие графические технологии в Mac OS X или iOS часто обеспечивают свои собственные подпрограммы для передачи с Кварцем. Например, приложение Mac OS X может отправить Кварцевые изображения в Базовое Изображение и использовать его для изменения изображения со сложными эффектами.

Рисунок 10-1  Движущиеся данные к и от Кварца, 2D в Mac OS X
Moving data to and from Quartz 2D

Перемещение данных в 2D кварц

Функции для получения данных от источника данных перечислены в Таблице 10-1. Все эти функции, за исключением CGPDFDocumentCreateWithURL, любой возврат источник изображения (CGImageSourceRef) или провайдер данных (CGDataProviderRef). Источники изображения и провайдеры данных абстрагируют задачу доступа к данным и избавляют от необходимости приложения управлять данными через необработанный буфер памяти.

Источники изображения являются предпочтительным способом переместить данные изображения в Кварц. Источник изображения представляет большое разнообразие данных изображения. Источник изображения может содержать больше чем одно изображение, изображения миниатюр и свойства для каждого изображения и файла образа. После того, как у Вас есть a CGImageSourceRef, можно выполнить эти задачи:

Функция CGPDFDocumentCreateWithURL функция удобства, создающая документ в формате PDF из файла, расположенного в указанном URL.

Провайдеры данных являются более старым механизмом с более ограниченной функциональностью. Они могут использоваться для получения данных PDF или изображения.

Можно предоставить провайдера данных к:

Для получения дополнительной информации об изображениях посмотрите Маски Изображения и Растровые изображения.

Табличные 10-1  Функции, перемещающие данные в 2D Кварц

Функция

Используйте эту функцию

CGImageSourceCreateWithDataProvider

Создать источник изображения от провайдера данных.

CGImageSourceCreateWithData

Создать источник изображения из объекта CFData.

CGImageSourceCreateWithURL

Создать источник изображения из URL, указывающего расположение данных изображения.

CGPDFDocumentCreateWithURL

Создать документ в формате PDF из данных, находящихся в указанном URL.

CGDataProviderCreateSequential

Считать изображение или данные PDF в потоке. Вы предоставляете обратные вызовы для обработки данных.

CGDataProviderCreateDirectAccess

Считать изображение или данные PDF в блоке. Вы предоставляете обратные вызовы для обработки данных.

CGDataProviderCreateWithData

Считать буфер изображения или данных PDF, снабженных Вашим приложением. Вы обеспечиваете обратный вызов для выпуска памяти, которую Вы выделили для данных.

CGDataProviderCreateWithURL

Каждый раз, когда можно предоставить URL, указывающий цель для доступа к данным для обработки изображений или данные PDF.

CGDataProviderCreateWithCFData

Считать изображение или данные PDF от объекта CFData.

Перемещение Данных из 2D Кварца

Функции, перечисленные в Таблице 10-2, перемещают данные из 2D Кварца. Все эти функции, за исключением CGPDFContextCreateWithURL, любой возврат место назначения изображения (CGImageDestinationRef) или потребитель данных (CGDataConsumerRef). Отобразите место назначения, и потребители данных абстрагируют задачу записи данных, позволяя Кварцу заботиться о подробных данных для Вас.

Место назначения изображения является предпочтительным способом переместить данные изображения из Кварца. Подобный источникам изображения, место назначения изображения может представлять множество данных изображения от единственного изображения до места назначения, содержащего повторные изображения, изображения миниатюр и свойства для каждого изображения или для файла образа. После того, как у Вас есть a CGImageDestinationRef, можно выполнить эти задачи:

Функция CGPDFContextCreateWithURL функция удобства, пишущая данные PDF в расположение, указанное URL.

Потребители данных являются более старым механизмом с более ограниченной функциональностью. Они используются для записи данных PDF или изображения. Можно предоставить потребителя данных к:

Для получения дополнительной информации об изображениях посмотрите Маски Изображения и Растровые изображения.

Табличные 10-2  Функции, перемещающие данные из 2D Кварца

Функция

Используйте эту функцию

CGImageDestinationCreateWithDataConsumer

Записать данные изображения потребителю данных.

CGImageDestinationCreateWithData

Записать данные изображения в объект CFData.

CGImageDestinationCreateWithURL

Каждый раз, когда можно предоставить URL, указывающий, где записать данные изображения.

CGPDFContextCreateWithURL

Каждый раз, когда можно предоставить URL, указывающий, где записать данные PDF.

CGDataConsumerCreateWithURL

Каждый раз, когда можно предоставить URL, указывающий, где записать данные PDF или изображение.

CGDataConsumerCreateWithCFData

Записать изображение или данные PDF к объекту CFData.

CGDataConsumerCreate

Для записи изображения или данных PDF с помощью обратных вызовов, Вы предоставляете.

Перемещение данных между кварцем 2D и базовое изображение в Mac OS X

Базовая платформа Изображения является Objective C API, предоставленный в Mac OS X, поддерживающем обработку изображений. Базовое Изображение позволяет Вам доступ встроенные фильтры изображения и для видеоизображений и для неподвижных изображений и предоставляет поддержку для пользовательских фильтров и псевдореальное время, обрабатывая. Можно применить Базовые фильтры Изображения к Кварцу 2D изображения. Например, можно использовать Базовое Изображение, чтобы исправить цвет, исказить геометрию изображений, размыть или увеличить резкость изображений и создать переход между изображениями. Базовое Изображение также позволяет Вам применять итеративный процесс к изображению — то, возвращающее вывод работы фильтра к вводу. Для понимания возможностей Базового Изображения более полно см. Базовое Руководство по программированию Изображения.

Базовые методы Изображения воздействуют на изображения, упаковывающиеся как Базовые изображения Изображения или объекты CIImage. Базовое Изображение не воздействует непосредственно на Кварцевые изображения (CGImageRef типы данных). Кварцевые изображения должны быть преобразованы в Базовые изображения Изображения перед применением Базового фильтра Изображения к изображению.

Кварц 2D API не обеспечивает функций, которые Кварц пакета отображает как Базовое Изображение, отображает, но Базовое Изображение делает. Следующие Базовые методы Изображения создают Базовое изображение Изображения или из Кварцевого изображения или из уровня Quartz (CGLayerRef). Можно использовать их для перемещения Кварца 2D данные в Базовое Изображение.

Следующие Базовые методы Изображения возвращают Кварцевое изображение из Базового изображения Изображения. Можно использовать их для положения обратно обработанного изображения в 2D Кварц:

Для полного описания Базовых методов Изображения посмотрите Базовый Ссылочный Набор Изображения.