Przytnij białe znaki za pomocą PIL
Czy istnieje proste rozwiązanie do przycinania białych znaków na obrazie w PIL?
ImageMagick zapewnia łatwe wsparcie w następujący sposób:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
Znalazłem rozwiązanie dla 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)
Ale to rozwiązanie ma wady:
Muszę to zdefiniowaćborder
kolor, to nie jest dla mnie wielka sprawa, moje zdjęcia mają białe tłoI najbardziej niekorzystna, to rozwiązanie PIL nie obsługuje ImageMagick-fuzz
klawisz. Aby dodać trochę rozmytego kadrowania. ponieważ mogę mieć pewne artefakty kompresji jpeg i niepotrzebne ogromne cienie.Może PIL ma wbudowane funkcje? Czy jest jakieś szybkie rozwiązanie?