我正在使用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];
所需的输出和模拟器显示的内容如下:
但是,当我在设备上运行它时,我得到以下输出:
可能有什么不对?
注意:图片被视为截图,而不是通过手机或其他设备。这是图像质量。
答案 0 :(得分:0)
好的,我发现了问题。问题在于图像。我在每个平台上使用不同的图像尺寸。