是否可以在不裁剪到 View 边缘的情况下生成模糊图像?正如您在下图中看到的,右侧没有被剪裁(因为框架延伸到模糊之外),但左侧被剪裁了。
提前致谢
GPUImageMotionBlurFilter *blurFilter = [GPUImageMotionBlurFilter new];
blurFilter.blurSize = 10;
blurredImage = [blurFilter imageByFilteringImage:blurredImage];
最佳答案
图像处理操作只能扩展到图像的大小,因此您需要做的是调整操作所用 Canvas 的大小。
使用 GPUImage,首先想到的方法是使用 -forceProcessingAtSize:
增加图像的分辨率,然后使用逆变换将您的图像以其原始分辨率放置在那。例如,如果您将原始图像的大小加倍,那么您将在 X 和 Y 中进行 0.5 的缩放变换,并在 X 和 Y 中进行 0.25 的平移(您可能需要检查其数学和极性,虽然)。
您可能还需要使用 -setBackgroundColorRed:green:blue:alpha:
设置变换滤镜的背景以匹配图像的背景(在本例中为白色),否则您将默认情况下在原始图像的尺寸之外获得黑色区域。
如果您在区域中心调整了图像的大小,您将对其应用模糊,这将导致模糊超出原始图像的限制。
关于IOS:在不剪裁模糊的情况下向 UIImage 添加模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23930719/