是否可以生成模糊图像而不将其剪切到视图边缘?正如您在下面的图像中看到的那样,右侧没有被剪裁(因为框架延伸超出该模糊),但左侧是。
提前致谢
GPUImageMotionBlurFilter *blurFilter = [GPUImageMotionBlurFilter new];
blurFilter.blurSize = 10;
blurredImage = [blurFilter imageByFilteringImage:blurredImage];
答案 0 :(得分:2)
图像处理操作只能扩展到图像的大小,因此您需要做的是调整其运行的画布的大小。
使用GPUImage,首先想到的方法是使用-forceProcessingAtSize:
来提高图像的分辨率,然后使用逆变换将图像置于其原始分辨率的中心位置。例如,如果您将原始图像的大小加倍,那么您将在X和Y中进行0.5的缩放变换,在X和Y中进行0.25的平移(您可能需要检查数学和极性虽然如此。
您可能还需要使用-setBackgroundColorRed:green:blue:alpha:
设置变换滤镜的背景以匹配图像的背景(在本例中为白色),否则默认情况下您将获得黑色区域原始图像的尺寸。
您已经在区域中心调整了图像的大小,您可以对其应用模糊效果,现在会使模糊超出原始图像的范围。