Есть ли простое решение обрезать пробелы на изображении в 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 есть некоторые встроенные функции? Или есть быстрое решение?