Garniture des espaces à l'aide de PIL
Est-il une solution simple pour la garniture des espaces blancs sur l'image dans PIL?
ImageMagick est facile de support de la manière suivante:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
J'ai trouvé une solution pour 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)
Mais cette solution a des inconvénients:
- J'ai besoin de définir
border
couleur, c'est pas une grosse affaire pour moi, mes images a fond blanc - Et les plus désavantagés, Ce PIL solution ne prend pas en charge ImageMagick
-fuzz
clé. Pour ajouter un peu floue de recadrage. que je peux avoir quelques artefacts de compression jpeg et inutiles ombres gigantesques.
Peut être PIL a quelques fonctions intégrées pour elle?
Ou il ya une certaine solution rapide?
- Je sais que le code est exactement le même, mais il peut aussi être trouvé ici - gist.github.com/mattjmorrison/932345
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas qu'il y est quelque chose de construit en de PIL qui peut faire cela. Mais j'ai modifié le code pour qu'il le fera.
getpixel
, de sorte que vous n'avez pas besoin de passer à la couleur.100, 100, 100
(dans mon exemple) à zéro. C'est aussi une belle façon de supprimer à tout "wobble" découlant de la compression.Code:
Fortement compressé jpeg:
Bruyant jpeg:
diff = ImageChops.add(diff, diff, 2.0, -100)
avecdiff = ImageChops.add(diff, diff)
Utilisation de la baguette magique de http://docs.wand-py.org/en/0.3-maintenance/wand/image.html
de finition(couleur=None, fuzz=0)
Retirer le solide frontière de l'image. Les utilisations du pixel supérieur gauche comme un guide par défaut, ou vous pouvez également spécifier la couleur pour les éliminer.
à l'aide de la fonction trim à l'ufp.l'image module.
ufp
. Je reçois le message d'erreur suivantERROR: Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/vd/5ccxv4957f1_prjqt1l_ppsw0000gq/T/pip-install-ya7p01_3/ufp/
. De plus, il n'y a pas de dépôt github pour ufp afin que je puisse contacter le développeur.