我有一个透明的png图像"foo.png",我打开了另一个图像
im = Image.open("foo2.png");
Run Code Online (Sandbox Code Playgroud)
现在我需要的是将foo.png与foo2.png合并.
(foo.png包含一些文本,我想在foo2.png上打印该文本)
是否有一个简单的解决方案来修剪PIL中的图像空白?
ImageMagick通过以下方式轻松支持它:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
Run Code Online (Sandbox Code Playgroud)
我找到了PIL的解决方案:
from PIL import Image, ImageChops
def trim(im, border):
bg = Image.new(im.mode, im.size, border)
diff = ImageChops.difference(im, bg)
bbox = diff.getbbox()
if bbox:
return im.crop(bbox)
Run Code Online (Sandbox Code Playgroud)
但是这个解决方案有缺点:
border颜色,这对我来说不是什么大问题,我的图像有白色背景-fuzz密钥.添加一些模糊裁剪.因为我可以有一些jpeg压缩工件和不需要的巨大阴影.可能PIL有一些内置的功能吗?还是有一些快速解决方案?