Я создаю фильтры в своем приложении, используя Core Image. Сначала я тестировал их на симуляторе, и все выглядело нормально. Когда я переключился на устройство, вывод выглядит по-другому. Для фильтра, который я использую, вот код:
result = [CIFilter filterWithName:@"CIColorMatrix" keysAndValues:
kCIInputImageKey, image,
@"inputRVector", [CIVector vectorWithX:1.00 Y:0.00 Z:0.00 W:0.00],
@"inputGVector", [CIVector vectorWithX:0.00 Y:1.00 Z:0.00 W:0.00],
@"inputBVector", [CIVector vectorWithX:0.30 Y:0.00 Z:1.00 W:0.00],
@"inputAVector", [CIVector vectorWithX:0.42 Y:0.00 Z:0.00 W:1.00],
@"inputBiasVector", [CIVector vectorWithX:0.00 Y:0.00 Z:0.06 W:0.00], nil].outputImage;
result = [CIFilter filterWithName:@"CIVignetteEffect" keysAndValues:
kCIInputImageKey, result,
kCIInputCenterKey, [CIVector vectorWithX:250 Y:478],
kCIInputRadiusKey, @414.36,
kCIInputIntensityKey, @0.75,nil].outputImage;
CGRect extent = [result extent];
CGImageRef cgimage = [context createCGImage:result fromRect:extent];
UIImage *filteredImage = [UIImage imageWithCGImage:cgimage scale:originalScale orientation:originalOrientation];
CGImageRelease(cgimage);
[_filteredImageView setImage:filteredImage];
Желаемый результат и то, что показывает симулятор, следующие:
Однако, когда я запускаю его на устройстве, я получаю следующий вывод:
Что может быть не так?
Примечание: изображения сделаны в виде скриншотов, а не с телефона или другого устройства. Это качество изображения.