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

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

Разработчик

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

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

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

CIContext

CIContext класс обеспечивает контекст оценки для рендеринга a CIImage объект через 2D Кварц или OpenGL. Вы используете CIContext объекты в сочетании с другими Базовыми классами Изображения, такой как CIFilter, CIImage, и CIColor, использовать в своих интересах встроенные Базовые фильтры Изображения при обработке изображений.

CIContext и CIImage объекты являются неизменными, что означает, что каждый может быть совместно использован безопасно среди потоков. Многократные потоки могут использовать тот же GPU или CPU CIContext возразите для рендеринга CIImage объекты. Однако дело обстоит не так для CIFilter объекты, которые являются непостоянными. A CIFilter объект не может быть совместно использован безопасно среди потоков. Если его собственное, приложение многопоточно, каждый поток необходимо создать CIFilter объекты. Иначе, Ваше приложение могло неожиданно вести себя.

Наследование


Соответствует


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


Swift

import QuartzCore

Objective C

@import QuartzCore;

Доступность


Доступный в OS X v10.4 и позже.
  • Создает Базовый контекст Изображения из Кварцевого контекста, с помощью указанных опций.

    Объявление

    Swift

    init!(CGContext ctx: CGContext!, options dict: [NSObject : AnyObject]!) -> CIContext

    Objective C

    + (CIContext *)contextWithCGContext:(CGContextRef)ctx options:(NSDictionary *)dict

    Параметры

    ctx

    Кварцевый контекст графики (CGContextRef объект), или полученный из системы или создаваемого использования Кварца функционируют такой как CGBitmapContextCreate. Посмотрите Кварц 2D Руководство по программированию для получения информации о создании Кварцевых контекстов графики.

    dict

    Словарь, содержащий информацию о цветовом пространстве. Можно передать любой из ключей, определенных в “Context Options” вместе с надлежащим значением.

    Обсуждение

    После вызова этого метода Базовое Изображение рисует содержание к указанному Кварцевому контексту графики.

    Когда Вы создаете a CIContext объект с помощью Кварцевого контекста графики, любые трансформации, уже установленные на Кварцевом получении влияния контекста графики в тот контекст.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.4 и позже.

  • Создает Базовый контекст Изображения из контекста CGL, с помощью указанных опций и объекта формата пикселя.

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

    Вместо этого используйте contextWithCGLContext:pixelFormat:colorSpace:options:.

    Объявление

    Swift

    init!(CGLContext ctx: CGLContextObj, pixelFormat pf: CGLPixelFormatObj, options options: [NSObject : AnyObject]!) -> CIContext

    Objective C

    + (CIContext *)contextWithCGLContext:(CGLContextObj)ctx pixelFormat:(CGLPixelFormatObj)pf options:(NSDictionary *)options

    Параметры

    ctx

    Контекст CGL (CGLContextObj объект), получают путем вызывания функции CGL CGLCreateContext.

    pf

    Объект формата пикселя CGL (CGLPixelFormatObj объект) создаваемый путем вызывания функции CGL CGLChoosePixelFormat. Этим параметром должен быть тот же объект формата пикселя, используемый для создания контекста CGL. Объект формата пикселя должен быть допустимым для времени жизни Базового контекста Изображения. Не выпускайте объект формата пикселя после выпуска Базового контекста Изображения.

    options

    Словарь, содержащий информацию о цветовом пространстве. Можно обеспечить ключи kCIContextOutputColorSpace или kCIContextWorkingColorSpace вместе с a CGColorSpaceRef объект для каждого цветового пространства.

    Обсуждение

    После вызова этого метода Базовое Изображение вовлекает содержание в поверхность (drawable объект) присоединенный к контексту CGL. Контекст CGL является OS X контекст OpenGL. Для получения дополнительной информации см. Руководство по программированию OpenGL для Mac.

    Когда Вы создаете a CIContext объект с помощью контекста CGL, всего набора состояний OpenGL для рендеринга влияния контекста CGL к тому контексту. Это означает, что координата и трансформации области просмотра установили на контексте CGL, а также цвете вершины.

    Для лучших результатов следуйте этим инструкциям при использовании Базового Изображения для рендеринга в контексте OpenGL:

    • Гарантируйте, что единый блок в координатном пространстве контекста OpenGL представляет единственный пиксель в устройстве вывода.

    • Базовое координатное пространство Изображения возникает в левом нижнем углу экрана. Необходимо сконфигурировать контекст OpenGL таким же образом.

    • Состояние смешивания контекста OpenGL уважает Базовое Изображение. Если изображение, которое Вы хотите представить, содержит полупрозрачные пиксели, лучше позволять смешать использование функции смешения с параметрами GL_ONE, GL_ONE_MINUS_SRC_ALPHA, как показано в следующем примере кода.

    Некоторая типичная инициализация кодирует для представления с шириной W и высота H :

    • glViewport (0, 0, W, H);
    • glMatrixMode (GL_PROJECTION);
    • glLoadIdentity ();
    • glOrtho (0, W, 0, H, -1, 1);
    • glMatrixMode (GL_MODELVIEW);
    • glLoadIdentity ();
    • glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
    • glEnable (GL_BLEND);

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.4 и позже.

    Осуждаемый в OS X v10.6.

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

    Объявление

    Swift

    init!(CGLContext ctx: CGLContextObj, pixelFormat pf: CGLPixelFormatObj, colorSpace space: CGColorSpace!, options options: [NSObject : AnyObject]!) -> CIContext

    Objective C

    + (CIContext *)contextWithCGLContext:(CGLContextObj)ctx pixelFormat:(CGLPixelFormatObj)pf colorSpace:(CGColorSpaceRef)space options:(NSDictionary *)options

    Параметры

    ctx

    Контекст CGL, полученный путем вызывания функции CGL CGLCreateContext.

    pf

    Формат пикселя CGL возражает или полученный из системы или создаваемый путем вызывания функции CGL такой как CGLChoosePixelFormat. Этот параметр должен быть тем же объектом формата пикселя, используемым для создания контекста CGL. Объект формата пикселя должен быть допустимым для времени жизни Базового контекста Изображения. Не выпускайте объект формата пикселя после выпуска Базового контекста Изображения.

    space

    Объект цветового пространства, инкапсулирующий информацию о цветовом пространстве, использующуюся, чтобы указать, как интерпретируются значения цвета.

    options

    Словарь, содержащий опции для создания a CIContext объект. Можно передать любой из ключей, определенных в “Context Options” вместе с надлежащим значением.

    Обсуждение

    После вызова этого метода Базовое Изображение вовлекает содержание в поверхность (drawable объект) присоединенный к контексту CGL. Контекст CGL является OS X контекст OpenGL. Для получения дополнительной информации см. Руководство по программированию OpenGL для Mac.

    Когда Вы создаете a CIContext объект с помощью контекста CGL, всего набора состояний OpenGL для рендеринга влияния контекста CGL к тому контексту. Это означает, что координата и трансформации области просмотра установили на контексте CGL, а также цвете вершины, получении влияния к тому контексту.

    Для лучших результатов следуйте этим инструкциям при использовании Базового Изображения для рендеринга в контексте OpenGL:

    • Гарантируйте, что единый блок в координатном пространстве контекста OpenGL представляет единственный пиксель в устройстве вывода.

    • Базовое координатное пространство Изображения возникает в нижнем левом углу экрана. Необходимо сконфигурировать контекст OpenGL таким же образом.

    • Состояние смешивания контекста OpenGL уважает Базовое Изображение. Если изображение, которое Вы хотите представить, содержит полупрозрачные пиксели, лучше позволять смешать использование функции смешения с параметрами GL_ONE, GL_ONE_MINUS_SRC_ALPHA, как показано в следующем примере кода.

    Некоторая типичная инициализация кодирует для представления с шириной W и высота H :

    • glViewport (0, 0, W, H);
    • glMatrixMode (GL_PROJECTION);
    • glLoadIdentity ();
    • glOrtho (0, W, 0, H, -1, 1);
    • glMatrixMode (GL_MODELVIEW);
    • glLoadIdentity ();
    • glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
    • glEnable (GL_BLEND);

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.6 и позже.

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

    Объявление

    Swift

    init!(forOfflineGPUAtIndex index: UInt32) -> CIContext

    Objective C

    + (CIContext *)contextForOfflineGPUAtIndex:(unsigned int)index

    Параметры

    index

    Индекс оффлайнового GPU, с которым можно создать контекст; число между нулем и значением, возвращенным offlineGPUCount метод.

    Возвращаемое значение

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

    Обсуждение

    Устройства GPU, в настоящее время не использующиеся для управления дисплеем, могут использоваться для Базового рендеринга Изображения. Используйте offlineGPUCount метод, чтобы определить, доступны ли какие-либо такие GPUs.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.10 и позже.

  • Создает Базовый контекст Изображения с помощью GPU, в настоящее время не управляющего дисплеем с указанными опциями.

    Объявление

    Swift

    init!(forOfflineGPUAtIndex index: UInt32, colorSpace colorSpace: CGColorSpace!, options options: [NSObject : AnyObject]!, sharedContext sharedContext: CGLContextObj) -> CIContext

    Objective C

    + (CIContext *)contextForOfflineGPUAtIndex:(unsigned int)index colorSpace:(CGColorSpaceRef)colorSpace options:(NSDictionary *)options sharedContext:(CGLContextObj)sharedContext

    Параметры

    index

    Индекс оффлайнового GPU, с которым можно создать контекст; число между нулем и значением, возвращенным offlineGPUCount метод.

    colorSpace

    Объект цветового пространства, инкапсулирующий информацию о цветовом пространстве, использующуюся, чтобы указать, как интерпретируются значения цвета.

    options

    Словарь, содержащий опции для создания a CIContext объект. Можно передать любой из ключей, определенных в “Context Options” вместе с надлежащим значением.

    sharedContext

    Контекст CGL, с которым можно совместно использовать ресурсы OpenGL, полученные путем вызывания функции CGL CGLCreateContext. Передача NULL использовать контекст, не совместно использующий ресурсы OpenGL.

    Возвращаемое значение

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

    Обсуждение

    Устройства GPU, в настоящее время не использующиеся для управления дисплеем, могут использоваться для Базового рендеринга Изображения. Используйте offlineGPUCount метод, чтобы определить, доступны ли какие-либо такие GPUs.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.10 и позже.

  • Создает Кварц 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 QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.4 и позже.

  • Создает Кварц 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 QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.5 и позже.

    См. также

    createCGImage:fromRect:

  • Создает объект CGLayer из предоставленных параметров.

    Объявление

    Swift

    func createCGLayerWithSize(_ size: CGSize, info d: CFDictionary!) -> CGLayer!

    Objective C

    - (CGLayerRef)createCGLayerWithSize:(CGSize)size info:(CFDictionaryRef)d

    Параметры

    size

    Размер, в модулях пространства пользователя по умолчанию, уровня относительно графического контекста.

    d

    Словарь, передающийся CGLayerCreateWithContext как auxiliaryInfo параметр. Передача NULL потому что этот параметр резервируется для будущего использования.

    Возвращаемое значение

    Объект CGLayer.

    Обсуждение

    После вызова этого метода Базовое Изображение вовлекает содержание в объект CGLayer. Базовое Изображение создает объект CGLayer путем вызова Кварца 2D функция CGLayerCreateWithContext, чей прототип:

    • CGLayerRef CGLayerCreateWithContext (
    • CGContextRef context,
    • CGSize size,
    • CFDictionaryRef auxiliaryInfo
    • );

    Базовое Изображение передает CIContext возразите как context параметр, размер как size параметр и словарь как auxiliaryInfo параметр. Для получения дополнительной информации об объектах CGLayer посмотрите Кварц 2D Руководство по программированию и Ссылка CGLayer.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.4 и позже.

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

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

    Вместо этого используйте 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 QuartzCore;

    Доступность

    Доступный в OS X v10.4 и позже.

    Осуждаемый в OS X v10.8.

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

    Объявление

    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 QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.4 и позже.

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

    Объявление

    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 QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.5 и позже.

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

    Объявление

    Swift

    func render(_ image: CIImage!, toIOSurface surface: IOSurface!, bounds r: CGRect, colorSpace cs: CGColorSpace!)

    Objective C

    - (void)render:(CIImage *)image toIOSurface:(IOSurfaceRef)surface bounds:(CGRect)r colorSpace:(CGColorSpaceRef)cs

    Параметры

    image

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

    surface

    Объект места назначения Айосерфэса.

    r

    Прямоугольник в месте назначения Айосерфэсе возражает для вовлечения.

    cs

    Цветовое пространство объекта места назначения Айосерфэса.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.6 и позже.

  • Освобождает любые кэшированные данные, такие как временные изображения, связанные с контекстом, и выполняет сборщик «мусора».

    Объявление

    Swift

    func clearCaches()

    Objective C

    - (void)clearCaches

    Обсуждение

    Можно использовать этот метод для удаления текстур из кэша текстуры, та ссылка удалила изображения.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.4 и позже.

    См. также

    – reclaimResources

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

    Объявление

    Swift

    func reclaimResources()

    Objective C

    - (void)reclaimResources

    Обсуждение

    Системные вызовы этот метод автоматически после каждой работы рендеринга. Можно использовать этот метод для удаления текстур из кэша текстуры, та ссылка удалила изображения.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.4 и позже.

    См. также

    – clearCaches

  • Возвращает число GPUs не в настоящее время управление дисплеем.

    Объявление

    Swift

    class func offlineGPUCount() -> UInt32

    Objective C

    + (unsigned int)offlineGPUCount

    Возвращаемое значение

    Число оффлайновых устройств GPU.

    Обсуждение

    Если это количество больше, чем нуль, система присоединила устройства GPU, в настоящее время не управляющие дисплеем. Можно использовать эти устройства для Базового рендеринга Изображения путем создания контекста с contextForOfflineGPUAtIndex: илиcontextForOfflineGPUAtIndex:colorSpace:options:sharedContext: метод.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    Доступный в OS X v10.10 и позже.

  • Ключи в словаре опций для a CIContext объект.

    Объявление

    Swift

    let kCIContextOutputColorSpace: NSString! let kCIContextWorkingColorSpace: NSString! let kCIContextUseSoftwareRenderer: NSString!

    Objective C

    NSString *kCIContextOutputColorSpace; NSString *kCIContextWorkingColorSpace; NSString *kCIContextUseSoftwareRenderer;

    Константы

    • kCIContextOutputColorSpace

      kCIContextOutputColorSpace

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

      По умолчанию Базовое Изображение использует цветовое пространство GenericRGB, оставляющее согласование цветов системе. Можно указать различное пространство цвета вывода путем обеспечения Кварца 2D объект CGColorSpace (CGColorSpaceRef). (См. Кварц 2D Руководство по программированию для получения информации о создании и использовании объектов CGColorSpace.)

      Чтобы запросить, чтобы Базовое Изображение не выполняло управления цветом, укажите NSNull возразите как значение для этого ключа. Используйте эту опцию для изображений, не содержащих цветные данные (такие как повышение, отображается, карты вектора нормали, и выбрал функциональные таблицы).

      Доступный в OS X v10.4 и позже.

    • kCIContextWorkingColorSpace

      kCIContextWorkingColorSpace

      Ключ для цветового пространства для использования для операций изображения.

      По умолчанию Базовое Изображение предполагает, что процессорные узлы составляют 128 бит на пиксель, линейный свет, предварительно умножил значения с плавающей точкой RGBA, использующие цветовое пространство GenericRGB. Можно указать различное рабочее цветовое пространство путем обеспечения Кварца 2D объект CGColorSpace (CGColorSpaceRef). Обратите внимание на то, что рабочее цветовое пространство должно быть основано на RGB. Если у Вас есть данные YUV, как введено (или другие данные, которые не основаны на RGB), можно использовать функции ColorSync для преобразования в рабочее цветовое пространство. (См. Кварц 2D Руководство по программированию для получения информации о создании и использовании объектов CGColorSpace.)

      Чтобы запросить, чтобы Базовое Изображение не выполняло управления цветом, укажите NSNull возразите как значение для этого ключа. Используйте эту опцию для изображений, не содержащих цветные данные (такие как повышение, отображается, карты вектора нормали, и выбрал функциональные таблицы).

      Доступный в OS X v10.4 и позже.

    • kCIContextUseSoftwareRenderer

      kCIContextUseSoftwareRenderer

      Ключ для включения использования средства рендеринга программного обеспечения. Если связанное NSNumber объект YEStrue, тогда средство рендеринга программного обеспечения требуется.

      Доступный в OS X v10.4 и позже.

    Обсуждение

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