Trimmen Sie Whitespace mit PIL
Gibt es eine einfache Lösung zum Trimmen von Leerzeichen auf dem Bild in PIL?
ImageMagick bietet folgende einfache Unterstützung:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
Ich habe eine Lösung für PIL gefunden:
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)
Diese Lösung hat jedoch Nachteile:
Ich muss definierenborder
Farbe, es ist keine große Sache für mich, meine Bilder haben einen weißen HintergrundUnd der größte Nachteil ist, dass diese PIL-Lösung ImageMagicks nicht unterstützt-fuzz
Schlüssel. Hinzufügen von unscharfem Beschneiden. Ich kann einige JPEG-Komprimierungsartefakte und nicht benötigte große Schatten haben.Vielleicht hat PIL einige eingebaute Funktionen dafür? Oder gibt es eine schnelle Lösung?