Как установить kCISamplerAffineMatrix при создании CISampler с изображением - PullRequest
0 голосов
/ 22 февраля 2019

Проблема

Я пытаюсь создать CISampler из изображения с дополнительными опциями, которые определяют аффинную матрицу.Документы устанавливают следующее для установки kCISamplerAffineMatrix:

Связанное значение - это объект NSArray ([abcd tx ty]), который определяет преобразование, применяемое к сэмплеру.

Попытка

NSArray *flipVertically = @[@(1),@(0),@(0),@(-1),@(0),@(0)];
NSDictionary *optionsDict = @{ kCISamplerAffineMatrix: flipVertically };
CISampler *sampler = [CISampler samplerWithImage:image options:optionsDict];

Попытка # 2

CGAffineTransform transform = CGAffineTransformMake(1, 0, 0, -1, 0, 0);
CIVector *vector = [CIVector vectorWithCGAffineTransform:transform];
NSDictionary *optionsDict = @{ kCISamplerWrapMode:  kCISamplerWrapClamp, kCISamplerAffineMatrix: vector };
CISampler *sampler = [CISampler samplerWithImage:image options:optionsDict];

Результат

Вместо того, чтобы иметь перевернутую аффинную матрицу в сэмплере, она такая же, как матрица CIImage,Однако я могу без проблем установить kCISamplerWrapMode, что заставляет меня думать, что я почему-то не понимаю описания документации по установке матрицы.Что такое объект NSArray ([abcd tx ty])?когда я печатаю матрицу в консоли, я получаю [1 0 0 1 0 0], но мой NSArray of corse больше похож на (1,0,0,-1,0,0).

...