在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)
但是这种解决方案有缺点:
- 我需要定义边框颜色,对我来说不是什么大问题,因为我的图像有白色背景。
- 最大的缺点是,这种PIL解决方案不支持ImageMagick的“-fuzz”关键字,无法添加模糊裁剪,因为我可能会遇到一些JPEG压缩伪影和不必要的巨大阴影。
也许PIL有一些内置函数可以实现?或者有一些快速的解决方案吗?