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?

questionAnswers(3)

yourAnswerToTheQuestion