Проблема
Я пытаюсь создать 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)
.