代码如下:
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)
感谢任何建议。
答案 0 :(得分:2)
这是对你的问题的一个超级迟到的答案,但主要问题是你正在考虑将CIImage作为一个图像。它不是,它是一个"配方"对于图像。因此,当您对其应用模糊滤镜时,Core Image会计算出要显示模糊的每个最后一个像素,您需要更大的画布。绘制整个图像的估计大小称为"范围"。从本质上讲,每个像素都会变得更胖,这意味着最终范围将比原始画布更大。由您来确定范围的哪个部分对您的绘图程序有用。