Esiste una soluzione semplice per ritagliare gli spazi bianchi sull'immagine in PIL?Spazio vuoto di ritaglio con PIL
ImageMagick ha un facile supporto per esso in modo seguente:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
ho trovato una soluzione per il 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)
Ma questa soluzione ha degli svantaggi:
- ho bisogno di definire il colore
border
, non è un grosso problema per me, le mie immagini hanno lo sfondo bianco - E il più svantaggio, questa soluzione PIL non supporta la chiave
-fuzz
di ImageMagick. Per aggiungere qualche ritaglio sfocato. come posso avere alcuni artefatti di compressione jpeg e ombre enormi non necessarie.
Può essere che il PIL abbia alcune funzioni incorporate per esso? Oppure c'è qualche soluzione veloce?
So che il codice è esattamente lo stesso lì, ma può anche essere trovato qui - https://gist.github.com/mattjmorrison/932345 –