使用Python中的PIL库,我正在将一个PNG格式的图像叠加在另一张更大的图像上。小图像是半透明的。
我希望在大图像上小图像的背后区域被模糊化。下面的代码可以模糊化一个矩形区域:
然而,我需要模糊一个带有圆角的矩形区域。
这是叠加图像的样子:
box = (3270, 1150, 4030, 2250) # (x1, y1, x2, y2)
ic = outputImage.crop(box)
ic = ic.filter(ImageFilter.BoxBlur(20))
outputImage.paste(ic, box)
然而,我需要模糊一个带有圆角的矩形区域。
这是叠加图像的样子:
那么,在PIL中是否可以定义裁剪区域的自定义形状?
如果不行,那么至少可以裁剪圆形区域吗?(为了完全覆盖并且没有任何悬挂,我的区域必须分成6个子区域:4个圆形和2个矩形。这样做会减慢我的代码,但我会接受任何可用的解决方案。)
我知道可以使用Numpy来实现这一点,但我更愿意使用PIL,因为此脚本中的其他所有内容都已经使用PIL编码。