是否有一个简单的解决方案来修剪 PIL 中图像上的空白?
ImageMagick 通过以下方式轻松支持它:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
我找到了 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)
但这种解决方案有缺点:
- 我需要定义
border
颜色,这对我来说没什么大不了的,我的图像有白色背景 - 最不利的是,这个 PIL 解决方案不支持 ImageMagick 的
-fuzz
密钥。添加一些模糊裁剪。因为我可以有一些 jpeg 压缩伪影和不需要的巨大阴影。
也许 PIL 有一些内置功能?还是有一些快速的解决方案?