1

代码如下:

CIImage *imageToBlur = [CIImage imageWithCGImage: self.pBackgroundImageView.image.CGImage];
CIFilter *blurFilter = [CIFilter filterWithName: @"CIGaussianBlur" keysAndValues: kCIInputImageKey, imageToBlur, @"inputRadius", [NSNumber numberWithFloat: 10.0], nil];
CIImage *outputImage = [blurFilter outputImage];
UIImage *resultImage = [UIImage imageWithCIImage: outputImage];

例如,输入图像的大小为 (640.000000,1136.000000),但输出图像的大小为 (700.000000,1196.000000)

任何建议表示赞赏。

4

1 回答 1

2

这是对您问题的超迟回答,但主要问题是您将 CIImage 视为图像。它不是,它是图像的“配方”。因此,当您对其应用模糊滤镜时,Core Image 会计算出要显示模糊的每个最后一个像素,您将需要更大的画布。绘制整个图像的估计大小称为“范围”。从本质上讲,每个像素都在“变胖”,这意味着最终的范围会比原来的画布更大。由您决定范围的哪一部分对您的绘图程序有用。

于 2014-06-09T09:42:10.150 回答