Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы CoreImage ссылка класса CIContext

Опции
Развертывание Target:

На этой странице
Язык:

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!) -> CIContext

    Objective 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!, options options: [NSObject : AnyObject]!) -> CIContext

    Objective 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]!) -> CIContext

    Objective 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 изображение из области Базового объекта изображения Изображения.

    Объявление

    Swift

    func createCGImage(_ im: CIImage!, fromRect r: CGRect) -> CGImage!

    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!, fromRect r: CGRect, format f: CIFormat, colorSpace cs: 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 и позже.

    См. также

    createCGImage:fromRect:

  • Представляет область изображения к точке в месте назначения контекста.

    Оператор осуждения

    Вместо этого используйте drawImage:inRect:fromRect:.

    Объявление

    Objective C

    - (void)drawImage:(CIImage *)im atPoint:(CGPoint)p fromRect:(CGRect)src

    Параметры

    im

    Базовый объект изображения Изображения.

    p

    Точка в месте назначения контекста для рисования к.

    src

    Область изображения для рисования.

    Обсуждение

    Этот метод, потому что это неоднозначно относительно модулей размерностей и не будет работать как ожидалось в среде с высокой разрешающей способностью, которая является, почему необходимо использовать drawImage:inRect:fromRect: вместо этого.

    На платформах iOS этот метод рисует изображение на буфер рендеринга для OpenGL контекст ES. Используйте этот метод только если CIContext объект создается с contextWithEAGLContext:, и следовательно, Вы представляете к CAEAGLLayer.

    Оператор импорта

    Objective C

    @import CoreImage;

    Доступность

    Доступный в iOS 5.0 и позже.

    Осуждаемый в iOS 6.0.

  • Представляет область изображения к прямоугольнику в месте назначения контекста.

    Объявление

    Swift

    func drawImage(_ im: CIImage!, inRect dest: CGRect, fromRect src: CGRect)

    Objective C

    - (void)drawImage:(CIImage *)im inRect:(CGRect)dest fromRect:(CGRect)src

    Параметры

    im

    A CIImage объект.

    dest

    Прямоугольник в месте назначения контекста для вовлечения. Изображение масштабируется для заполнения целевого прямоугольника.

    src

    Подобласть изображения, что Вы хотите вовлечь контекст с источником и целевым размером, определенным dest параметр. Этот прямоугольник всегда находится в пиксельных размерностях.

    Обсуждение

    На iOS этот метод рисует CIImage объект в renderbuffer для OpenGL контекст ES. Используйте этот метод только если CIContext объект создается с contextWithEAGLContext: и если Вы представляете к CAEAGLayer.

    На OS X необходимо знать ли CIContext объект создается с a CGContextRef или a CGLContext объект. Если Вы создаете CIContext объект с a CGContextRef, размерности целевого прямоугольника находятся в точках. Если Вы создаете CIContext объект с a CGLContext объект, размерности находятся в пикселях.

    На iOS 5 этот метод синхронен. На iOS 6 этот метод является асинхронным. Для приложений, соединенных на iOS 5, этот метод будет продолжать быть синхронным.

    Оператор импорта

    Objective C

    @import CoreImage;

    Swift

    import CoreImage

    Доступность

    Доступный в iOS 5.0 и позже.

  • Рендеринг к данному битовому массиву.

    Объявление

    Swift

    func render(_ im: CIImage!, toBitmap data: UnsafeMutablePointer<Void>, rowBytes rb: Int, bounds r: CGRect, format f: CIFormat, colorSpace cs: 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!, toCVPixelBuffer buffer: 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!, toCVPixelBuffer buffer: CVPixelBuffer!, bounds r: CGRect, colorSpace cs: 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 и позже.

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

    Объявление

    Swift

    func inputImageMaximumSize() -> CGSize

    Objective C

    - (CGSize)inputImageMaximumSize

    Обсуждение

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

    Оператор импорта

    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 объект YEStrue, тогда средство рендеринга программного обеспечения требуется.

      Доступный в iOS 5.0 и позже.

    • kCIContextPriorityRequestLow

      Ключ для включения низкоприоритетного использования GPU.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Если это значение YEStrue, использование Базового контекста Изображения от фонового потока берет более низкий приоритет, чем использование GPU от основного потока, позволяя Вашему приложению выполнить Базовый рендеринг Изображения, не нарушая частоту кадров анимаций UI.

      Доступный в iOS 8.0 и позже.

    • kCIContextWorkingFormat

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

      Значение для этого ключа NSNumber объект, содержащий a CIFormat значение. Значение по умолчанию, работающее формат, kCIFormatRGBA8 для рендеринга GPU и kCIFormatRGBAf для рендеринга GPU. GPU, представляющий также, поддерживает kCIFormatRGBAh формат для большей цветной точности, но этот формат требует вдвое большего количества памяти и может использоваться только с включенным управлением цветом.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    Для обсуждения того, когда использовать опции и управление цветом, см. Базовое Руководство по программированию Изображения.