IOS:为UIImage添加模糊而不剪切模糊

时间:2014-05-29 10:03:11

标签: ios objective-c gpuimage

是否可以生成模糊图像而不将其剪切到视图边缘?正如您在下面的图像中看到的那样,右侧没有被剪裁(因为框架延伸超出该模糊),但左侧是。

提前致谢

enter image description here

    GPUImageMotionBlurFilter *blurFilter = [GPUImageMotionBlurFilter new];
    blurFilter.blurSize = 10;
    blurredImage = [blurFilter imageByFilteringImage:blurredImage];

1 个答案:

答案 0 :(得分:2)

图像处理操作只能扩展到图像的大小,因此您需要做的是调整其运行的画布的大小。

使用GPUImage,首先想到的方法是使用-forceProcessingAtSize:来提高图像的分辨率,然后使用逆变换将图像置于其原始分辨率的中心位置。例如,如果您将原始图像的大小加倍,那么您将在X和Y中进行0.5的缩放变换,在X和Y中进行0.25的平移(您可能需要检查数学和极性虽然如此。

您可能还需要使用-setBackgroundColorRed:green:blue:alpha:设置变换滤镜的背景以匹配图像的背景(在本例中为白色),否则默认情况下您将获得黑色区域原始图像的尺寸。

您已经在区域中心调整了图像的大小,您可以对其应用模糊效果,现在会使模糊超出原始图像的范围。