CIContext
Оператор импорта
Swift
import CoreImage
Objective C
@import CoreImage;
Доступность
Доступный в iOS 5.0 и позже.
CIContext класс обеспечивает контекст оценки для рендеринга a CIImage объект через 2D Кварц или OpenGL. Вы используете CIContext объекты в сочетании с другими Базовыми классами Изображения, такой как CIFilter, CIImage, и CIColor, использовать в своих интересах встроенные Базовые фильтры Изображения при обработке изображений.
CIContext и CIImage объекты являются неизменными, что означает, что каждый может быть совместно использован безопасно среди потоков. Многократные потоки могут использовать тот же GPU или CPU CIContext возразите для рендеринга CIImage объекты. Однако дело обстоит не так для CIFilter объекты, которые являются непостоянными. A CIFilter объект не может быть совместно использован безопасно среди потоков. Если его собственное, приложение многопоточно, каждый поток необходимо создать CIFilter объекты. Иначе, Ваше приложение могло неожиданно вести себя.
-
Создает Базовый контекст Изображения из контекста EAGL.
Объявление
Swift
init!(EAGLContexteaglContext: EAGLContext!) -> CIContextObjective C
+ (CIContext *)contextWithEAGLContext:(EAGLContext *)eaglContextПараметры
eaglContextКонтекст EAGL для рендеринга к.
Возвращаемое значение
Базовый контекст Изображения, предназначающийся для OpenGL ES.
Обсуждение
OpenGL контекст ES должен поддерживать OpenGL ES 2.0. Все получение выполнило использование
drawImage:atPoint:fromRect:метод илиdrawImage:inRect:fromRect:метод представляется непосредственно в контекст.Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Создает Базовый контекст Изображения из контекста EAGL с помощью указанных опций.
Объявление
Swift
init!(EAGLContexteaglContext: EAGLContext!, optionsoptions: [NSObject : AnyObject]!) -> CIContextObjective C
+ (CIContext *)contextWithEAGLContext:(EAGLContext *)eaglContextoptions:(NSDictionary *)optionsПараметры
eaglContextКонтекст EAGL для рендеринга к.
optionsСловарь, содержащий опции для создания a
CIContextобъект. Можно передать любой из ключей, определенных в“Context Options”вместе с надлежащим значением.Возвращаемое значение
Базовый контекст Изображения, предназначающийся для OpenGL ES.
Обсуждение
OpenGL контекст ES должен поддерживать OpenGL ES 2.0. Все получение выполнило использование
drawImage:atPoint:fromRect:метод илиdrawImage:inRect:fromRect:метод представляется непосредственно в контекст.Если Вы хотите получить производительность в реальном времени на устройстве, необходимо использовать этот метод. Одно из преимуществ использования контекста EAGL - то, что представленное изображение остается на GPU и не становится скопированным в память ЦП.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Создает основанный на CPU Базовый контекст Изображения с помощью указанных опций.
Объявление
Swift
init!(optionsdict: [NSObject : AnyObject]!) -> CIContextObjective C
+ (CIContext *)contextWithOptions:(NSDictionary *)dictПараметры
dictСловарь, содержащий опции для контекста. Можно передать любой из ключей, определенных в
“Context Options”вместе с надлежащим значением.Возвращаемое значение
Базовый контекст Изображения.
Обсуждение
Можно создать основанный на CPU контекст путем обеспечения ключа
kCIContextUseSoftwareRenderer. Основанный на CPU контекст поддерживает большие изображения ввода и вывода, чем основанный на GPU контекст. Это также позволяет Вашему приложению выполнять обработку в фоновом режиме, такой, сохраняя представленный вывод к фото Библиотеке.Рендеринг GPU быстрее, чем рендеринг CPU, но получающееся изображение не выведено на экран на устройстве, пока не скопированный в память ЦП и преобразованный в другой тип изображения, такой как a
UIImageобъект.Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Создает Кварц 2D изображение из области Базового объекта изображения Изображения.
Объявление
Objective C
- (CGImageRef)createCGImage:(CIImage *)imfromRect:(CGRect)rПараметры
imБазовый объект изображения Изображения.
rОбласть изображения для рендеринга.
Возвращаемое значение
Кварц 2D изображение. Вы ответственны за выпуск возвращенного изображения, когда Вам больше не нужен он.
Обсуждение
Представляет область изображения во временный буфер с помощью контекста, затем создает и возвращает Кварц 2D изображение с результатами.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Создает Кварц 2D изображение из области Базового объекта изображения Изображения.
Объявление
Swift
func createCGImage(_im: CIImage!, fromRectr: CGRect, formatf: CIFormat, colorSpacecs: CGColorSpace!) -> CGImage!Objective C
- (CGImageRef)createCGImage:(CIImage *)imfromRect:(CGRect)rformat:(CIFormat)fcolorSpace:(CGColorSpaceRef)csПараметры
imБазовый объект изображения Изображения.
rОбласть изображения для рендеринга.
fФормат изображения.
csЦветовое пространство изображения.
Возвращаемое значение
Кварц 2D изображение. Вы ответственны за выпуск возвращенного изображения, когда Вам больше не нужен он.
Обсуждение
Представляет область изображения во временный буфер с помощью контекста, затем создает и возвращает Кварц 2D изображение с результатами.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
См. также
-
- drawImage:atPoint:fromRect:(iOS 6.0)Представляет область изображения к точке в месте назначения контекста.
Оператор осуждения
Вместо этого используйте
drawImage:inRect:fromRect:.Параметры
imБазовый объект изображения Изображения.
pТочка в месте назначения контекста для рисования к.
srcОбласть изображения для рисования.
Обсуждение
Этот метод, потому что это неоднозначно относительно модулей размерностей и не будет работать как ожидалось в среде с высокой разрешающей способностью, которая является, почему необходимо использовать
drawImage:inRect:fromRect:вместо этого.На платформах iOS этот метод рисует изображение на буфер рендеринга для OpenGL контекст ES. Используйте этот метод только если
CIContextобъект создается сcontextWithEAGLContext:, и следовательно, Вы представляете к CAEAGLLayer.Оператор импорта
Objective C
@import CoreImage;Доступность
Доступный в iOS 5.0 и позже.
Осуждаемый в iOS 6.0.
См. также
-
Представляет область изображения к прямоугольнику в месте назначения контекста.
Объявление
Параметры
imA
CIImageобъект.destПрямоугольник в месте назначения контекста для вовлечения. Изображение масштабируется для заполнения целевого прямоугольника.
srcПодобласть изображения, что Вы хотите вовлечь контекст с источником и целевым размером, определенным
destпараметр. Этот прямоугольник всегда находится в пиксельных размерностях.Обсуждение
На iOS этот метод рисует
CIImageобъект в renderbuffer для OpenGL контекст ES. Используйте этот метод только еслиCIContextобъект создается сcontextWithEAGLContext:и если Вы представляете к CAEAGLayer.На OS X необходимо знать ли
CIContextобъект создается с aCGContextRefили aCGLContextобъект. Если Вы создаетеCIContextобъект с aCGContextRef, размерности целевого прямоугольника находятся в точках. Если Вы создаетеCIContextобъект с aCGLContextобъект, размерности находятся в пикселях.На iOS 5 этот метод синхронен. На iOS 6 этот метод является асинхронным. Для приложений, соединенных на iOS 5, этот метод будет продолжать быть синхронным.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
рендеринг (_: toBitmap:rowBytes:bounds:format:colorSpace:) - render:toBitmap:rowBytes:bounds:format:colorSpace:Рендеринг к данному битовому массиву.
Объявление
Swift
func render(_im: CIImage!, toBitmapdata: UnsafeMutablePointer<Void>, rowBytesrb: Int, boundsr: CGRect, formatf: CIFormat, colorSpacecs: CGColorSpace!)Objective C
- (void)render:(CIImage *)imtoBitmap:(void *)datarowBytes:(ptrdiff_t)rbbounds:(CGRect)rformat:(CIFormat)fcolorSpace:(CGColorSpaceRef)csПараметры
imБазовый объект изображения Изображения.
dataХранение для растровых данных.
rbБайты на строку.
rГраницы растровых данных.
fФормат растровых данных.
csЦветовое пространство для данных. Передача
NULLесли Вы хотите использовать пространство цвета вывода контекста.Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Представляет изображение в пиксельном буфере.
Объявление
Swift
func render(_image: CIImage!, toCVPixelBufferbuffer: CVPixelBuffer!)Objective C
- (void)render:(CIImage *)imagetoCVPixelBuffer:(CVPixelBufferRef)bufferПараметры
imageБазовый объект изображения Изображения.
bufferЦелевой пиксельный буфер.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Представляет область изображения в пиксельный буфер.
Объявление
Swift
func render(_image: CIImage!, toCVPixelBufferbuffer: CVPixelBuffer!, boundsr: CGRect, colorSpacecs: CGColorSpace!)Objective C
- (void)render:(CIImage *)imagetoCVPixelBuffer:(CVPixelBufferRef)bufferbounds:(CGRect)rcolorSpace:(CGColorSpaceRef)csПараметры
imageБазовый объект изображения Изображения.
bufferЦелевой пиксельный буфер.
rПрямоугольник в целевом пикселе буферизует для вовлечения.
csЦветовое пространство целевого пиксельного буфера.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Возвращается максимальный размер допускал любое изображение, представленное в контексте.
Обсуждение
Некоторые контексты ограничивают максимальный размер изображения, которое может быть представлено в них. Например, максимальный размер мог бы отразить ограничение в базовом аппаратном обеспечении машинной графики.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Возвращается максимальный размер допускал любое изображение, создаваемое контекстом.
Объявление
Swift
func outputImageMaximumSize() -> CGSizeObjective C
- (CGSize)outputImageMaximumSizeОбсуждение
Некоторые контексты ограничивают максимальный размер изображения, которое может быть создано ими. Например, максимальный размер мог бы отразить ограничение в базовом аппаратном обеспечении машинной графики.
Оператор импорта
Objective C
@import CoreImage;Swift
import CoreImageДоступность
Доступный в iOS 5.0 и позже.
-
Ключи в словаре опций для a
CIContextобъект.Объявление
Swift
let kCIContextOutputColorSpace: String let kCIContextWorkingColorSpace: String let kCIContextUseSoftwareRenderer: String let kCIContextPriorityRequestLow: String let kCIContextWorkingFormat: StringObjective C
NSString *kCIContextOutputColorSpace; NSString *kCIContextWorkingColorSpace; NSString *kCIContextUseSoftwareRenderer; NSString *kCIContextPriorityRequestLow; NSString *kCIContextWorkingFormat;Константы
-
kCIContextOutputColorSpaceКлюч для цветового пространства для использования для изображений, прежде чем они будут представлены к контексту.
По умолчанию Базовое Изображение использует цветовое пространство GenericRGB, оставляющее согласование цветов системе. Можно указать различное пространство цвета вывода путем обеспечения Кварца 2D объект CGColorSpace (
CGColorSpaceRef). (См. Кварц 2D Руководство по программированию для получения информации о создании и использовании объектов CGColorSpace.)Чтобы запросить, чтобы Базовое Изображение не выполняло управления цветом, укажите
NSNullвозразите как значение для этого ключа. Используйте эту опцию для изображений, не содержащих цветные данные (такие как повышение, отображается, карты вектора нормали, и выбрал функциональные таблицы).Доступный в iOS 5.0 и позже.
-
kCIContextWorkingColorSpaceКлюч для цветового пространства для использования для операций изображения.
По умолчанию Базовое Изображение предполагает, что процессорные узлы составляют 128 бит на пиксель, линейный свет, предварительно умножил значения с плавающей точкой RGBA, использующие цветовое пространство GenericRGB. Можно указать различное рабочее цветовое пространство путем обеспечения Кварца 2D объект CGColorSpace (
CGColorSpaceRef). Обратите внимание на то, что рабочее цветовое пространство должно быть основано на RGB. Если у Вас есть данные YUV, как введено (или другие данные, которые не основаны на RGB), можно использовать функции ColorSync для преобразования в рабочее цветовое пространство. (См. Кварц 2D Руководство по программированию для получения информации о создании и использовании объектов CGColorSpace.)Чтобы запросить, чтобы Базовое Изображение не выполняло управления цветом, укажите
NSNullвозразите как значение для этого ключа. Используйте эту опцию для изображений, не содержащих цветные данные (такие как повышение, отображается, карты вектора нормали, и выбрал функциональные таблицы).Доступный в iOS 5.0 и позже.
-
kCIContextUseSoftwareRendererКлюч для включения использования средства рендеринга программного обеспечения. Если связанное
NSNumberобъектYEStrue, тогда средство рендеринга программного обеспечения требуется.Доступный в iOS 5.0 и позже.
-
kCIContextPriorityRequestLowКлюч для включения низкоприоритетного использования GPU.
Значение для этого ключа
NSNumberобъект, содержащий булево значение. Если это значениеYEStrue, использование Базового контекста Изображения от фонового потока берет более низкий приоритет, чем использование GPU от основного потока, позволяя Вашему приложению выполнить Базовый рендеринг Изображения, не нарушая частоту кадров анимаций UI.Доступный в iOS 8.0 и позже.
-
kCIContextWorkingFormatОпция для цветного формата для использования для промежуточных результатов при рендеринге с контекстом.
Значение для этого ключа
NSNumberобъект, содержащий aCIFormatзначение. Значение по умолчанию, работающее формат,kCIFormatRGBA8для рендеринга GPU иkCIFormatRGBAfдля рендеринга GPU. GPU, представляющий также, поддерживаетkCIFormatRGBAhформат для большей цветной точности, но этот формат требует вдвое большего количества памяти и может использоваться только с включенным управлением цветом.Доступный в iOS 8.0 и позже.
Обсуждение
Для обсуждения того, когда использовать опции и управление цветом, см. Базовое Руководство по программированию Изображения.
-
