我有这个代码
CIImage * input_ciimage = [CIImage imageWithCGImage:self.CGImage];
CIImage * output_ciimage =
[[CIFilter filterWithName:@"CILanczosScaleTransform" keysAndValues:
kCIInputImageKey, input_ciimage,
kCIInputScaleKey, [NSNumber numberWithFloat:0.72], // [NSNumber numberWithFloat: 800.0 / self.size.width],
nil] outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef output_cgimage = [context createCGImage:output_ciimage
fromRect:[output_ciimage extent]];
UIImage *output_uiimage;
output_uiimage = [UIImage imageWithCGImage:output_cgimage
scale:1.0 orientation:self.imageOrientation];
CGImageRelease(output_cgimage);
return output_uiimage;
因此,当 scaleKey 大于某个值时 output_uiimage 是黑色图像。
在我的情况下,如果键 kCIInputScaleKey > @0.52 的值,则结果是黑色图像。当我将图像旋转 90 度时,我得到了相同的结果,但值为 0.72(不是 0.52)。
库有什么问题或我的代码有错误?
如果需要,我有 iPhone 4、iOS 7.1.2、xCode 6.0。