Обрезка CIImage с помощью CICrop не работает должным образом

У меня проблемы с кадрированием изображения. У меня фильтр CICrop не работает должным образом. Если мои CIVector x и y (исходные) равны 0, все работает нормально (изображение обрезается из левого нижнего угла), изображение обрезается по ширине и высоте моего прямоугольника, но если исходные точки CIVector (x и y) не равны 0 в моем обрезанном изображение становится пространством (поскольку фильтр CICrop обрезает нижний левый угол независимо от начала координат (x и y)).

Я обрезаю CIImage прямоугольником, источник:

CIVector *cropRect =[CIVector vectorWithX:150 Y:150 Z: 300 W: 300];

CIFilter *cropFilter = [CIFilter filterWithName:@"CICrop"];   

[cropFilter setValue:myCIImage forKey:@"inputImage"];
[cropFilter setValue:cropRect forKey:@"inputRectangle"];

CIImage *croppedImage = [cropFilter valueForKey:@"outputImage"];

Выходное изображение с CIVector X 150 и Y 150: (для ясности я нарисовал границу)

enter image description here

Выходное изображение с CIVector X 0 и Y 0:

enter image description here

Исходное изображение:

enter image description here

Что я делаю не так? Или так и должно быть?

14
задан j0k 4 July 2013 в 08:23
поделиться