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

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

Разработчик

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

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

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

CIKernel

CIKernel объект управляет, основанная на GPU подпрограмма обработки изображений раньше создавала пользовательские Базовые фильтры Изображения. В OS X используйте CIKernel класс для любого фильтра, включающего пользовательскую основанную на GPU обработку изображений. В iOS, для обеспечения лучшей производительности, используют подклассы CIColorKernel и CIWarpKernel при реализации фильтров, воздействующих только на цвет или информацию о геометрии, и использующих CIKernel класс непосредственно только при реализации фильтров общего назначения, использующих и цвет и информацию о геометрии вместе.

Подпрограмма языка ядра для ядра фильтра общего назначения в iOS (или любого ядра фильтра в OS X) имеет следующие характеристики:

  • Его тип возврата vec4; т.е. это возвращает пиксельный цвет для выходного изображения.

  • Это может использовать нуль или более входные изображения. Каждое входное изображение представлено параметром типа sampler.

Подпрограмма ядра обычно производит свой вывод путем вычисления координат исходного изображения (использующий destCoord и samplerTransform функции или samplerTransform функция), выборки из исходных изображений (использующий sample функция), и вычисляет заключительный пиксельный цвет (вывод с помощью return ключевое слово). Например, Базовый источник Языка Ядра Изображения ниже реализует фильтр, проходящий через его входное неизменное изображение.

  • kernel vec4 do_nothing(sampler image) {
  • vec2 dc = destCoord();
  • return sample(image, samplerTransform(image, dc));
  • }

Базовый Язык Ядра Изображения является диалектом Языка Штриховки OpenGL. Посмотрите Базовую Ссылку Языка Ядра Изображения и Базовое Руководство по программированию Изображения для большего количества подробных данных.

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


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


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


Swift

import QuartzCore

Objective C

@import QuartzCore;

Доступность


Доступный в OS X v10.4 и позже.
  • Создает единственный объект ядра.

    Объявление

    Swift

    init!(string string: String!) -> CIKernel

    Objective C

    + (CIKernel *)kernelWithString:(NSString *)string

    Параметры

    string

    Программа в Базовом Языке Ядра Изображения, содержащем единственную подпрограмму, отметила использование kernel ключевое слово.

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

    Новый объект ядра. В iOS класс возвращенного объекта может быть CIKernel, CIColorKernel, или CIWarpKernel в зависимости от типа подпрограммы, указанной в Базовой строке исходного кода Языка Ядра Изображения.

    Обсуждение

    Базовый Язык Ядра Изображения является диалектом Языка Штриховки OpenGL. Посмотрите Базовую Ссылку Языка Ядра Изображения и Базовое Руководство по программированию Изображения для большего количества подробных данных.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

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

  • Создает и возвращается и массив CIKernel объекты.

    Объявление

    Swift

    class func kernelsWithString(_ s: String!) -> [AnyObject]!

    Objective C

    + (NSArray *)kernelsWithString:(NSString *)s

    Параметры

    s

    Программа в Базовом Языке Ядра Изображения, содержащем одну или более подпрограмм, каждая из которых отмечена с помощью kernel ключевое слово.

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

    Массив CIKernel объекты. Массив содержит тот CIKernel объекты для каждой подпрограммы ядра в предоставленной строке. В iOS каждый объект в массиве может иметь класс CIKernel, CIColorKernel, или CIWarpKernel в зависимости от соответствующей подпрограммы, указанной в Базовой строке исходного кода Языка Ядра Изображения.

    Обсуждение

    Базовый Язык Ядра Изображения является диалектом Языка Штриховки OpenGL. Посмотрите Базовую Ссылку Языка Ядра Изображения и Базовое Руководство по программированию Изображения для большего количества подробных данных.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

    OS X v10.4 и позже.

  • Возвращает имя подпрограммы ядра.

    Объявление

    Swift

    func name() -> String!

    Objective C

    - (NSString *)name

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

    Имя подпрограммы ядра.

    Обсуждение

    Имя подпрограммы ядра является идентификатором, используемым для объявления его в Базовом исходном коде Языка Ядра Изображения. Например, если Вы используете kernelWithString: метод для создания ядра из исходного кода ниже, имя возвращенного CIKernel объект является «moveUpTwoPixels».

    • kernel vec4 moveUpTwoPixels (sampler image) {
    • vec2 dc = destCoord();
    • vec2 offset = vec2(0.0, 2.0);
    • return sample (image, samplerTransform (image, dc + offset));
    • }

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

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

  • Устанавливает селекторное Базовое использование Изображения для запросов представляющей интерес области для обработки изображений с ядром.

    Объявление

    Swift

    func setROISelector(_ aMethod: Selector)

    Objective C

    - (void)setROISelector:(SEL)aMethod

    Параметры

    aMethod

    Селекторное имя.

    Обсуждение

    При применении ядра фильтра область интереса (ROI) является областью пикселей исходного изображения, которые должны быть обработаны для создания данной области пикселей конечного изображения. Для более подробного определения посмотрите Область Интереса.

    aMethod параметр должен использовать подпись, определяющуюся для regionOf:destRect:userInfo: метод, который является следующие:

    - (CGRect) regionOf:(int)samplerIndex destRect:(CGRect)r userInfo:obj;

    где:

    • samplerIndex определяет сэмплер для запросов

    • destRect степень области, в координатах рабочей области, для рендеринга.

    • userInfo объект, связанный с kCIApplyOptionUserInfo опция, когда ядро применяется к его параметрам (с apply:arguments:options: метод a CIFilter объект с помощью ядра). userInfo важно, потому что переменные экземпляра не могут использоваться классом определения. Через переменные экземпляра нужно пройти userInfo параметр.

    regionOf:destRect:userInfo: метод объекта CIFilter вызывает платформа. Этот метод возвращает прямоугольник, содержащий область сэмплера, что ядро должно представить указанный целевой прямоугольник.

    Выборка regionOf:destRect:userInfo: метод мог бы посмотреть следующим образом:

    • - (CGRect)regionOf:(int)sampler destRect:(CGRect)r userInfo:params
    • {
    • float scale = fabs ([params X]);
    • return CGRectInset (r, scale * -1.3333, scale * -1.3333);
    • }

    Если Вашему ядру не нужно изображение в index произвести вывод в прямоугольнике rect, Ваш метод должен возвратиться CGRectNull.

    В коде фильтра Вы устанавливаете селектор с помощью следующего:

    [kernel setROISelector:@selector(regionOf:destRect:userInfo:)]

    Также используйте applyWithExtent:roiCallback:arguments: метод для прямого применения ядра для создания выходного изображения, указывая обратный вызов ROI как блок или закрытие.

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

    Objective C

    @import QuartzCore;

    Swift

    import QuartzCore

    Доступность

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