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!(EAGLContext
eaglContext
: 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!(EAGLContext
eaglContext
: EAGLContext!, optionsoptions
: [NSObject : AnyObject]!) -> CIContextObjective C
+ (CIContext *)contextWithEAGLContext:(EAGLContext *)
eaglContext
options:(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!(options
dict
: [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 *)
im
fromRect:(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 *)
im
fromRect:(CGRect)r
format:(CIFormat)f
colorSpace:(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.
См. также
-
Представляет область изображения к прямоугольнику в месте назначения контекста.
Объявление
Параметры
im
A
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 *)
im
toBitmap:(void *)data
rowBytes:(ptrdiff_t)rb
bounds:(CGRect)r
format:(CIFormat)f
colorSpace:(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 *)
image
toCVPixelBuffer:(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 *)
image
toCVPixelBuffer:(CVPixelBufferRef)buffer
bounds:(CGRect)r
colorSpace:(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() -> CGSize
Objective 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: String
Objective 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
объектYES
true
, тогда средство рендеринга программного обеспечения требуется.Доступный в iOS 5.0 и позже.
-
kCIContextPriorityRequestLow
Ключ для включения низкоприоритетного использования GPU.
Значение для этого ключа
NSNumber
объект, содержащий булево значение. Если это значениеYES
true
, использование Базового контекста Изображения от фонового потока берет более низкий приоритет, чем использование GPU от основного потока, позволяя Вашему приложению выполнить Базовый рендеринг Изображения, не нарушая частоту кадров анимаций UI.Доступный в iOS 8.0 и позже.
-
kCIContextWorkingFormat
Опция для цветного формата для использования для промежуточных результатов при рендеринге с контекстом.
Значение для этого ключа
NSNumber
объект, содержащий aCIFormat
значение. Значение по умолчанию, работающее формат,kCIFormatRGBA8
для рендеринга GPU иkCIFormatRGBAf
для рендеринга GPU. GPU, представляющий также, поддерживаетkCIFormatRGBAh
формат для большей цветной точности, но этот формат требует вдвое большего количества памяти и может использоваться только с включенным управлением цветом.Доступный в iOS 8.0 и позже.
Обсуждение
Для обсуждения того, когда использовать опции и управление цветом, см. Базовое Руководство по программированию Изображения.
-