J'ai une image dans .jpg format
avec white background color
. Je souhaite supprimer la couleur d'arrière-plan blanc en transparent dans Imagemagick
. J'ai essayé de nombreuses façons mais le fond blanc ne peut toujours pas être supprimé. Quelqu'un peut-il m'aider à résoudre ce problème?.
Tout d'abord, vous devez convertir le format d'image du format .jpg
Au format .png
, Car JPEG ne prend pas en charge la transparence. Utilisez ensuite cette commande:
convert image1.png -fuzz 20% -transparent white result.png
L'option -fuzz
Permet également de convertir le pourcentage spécifié par rapport à la couleur blanc pur en transparent. Cela est utile, par exemple, lorsque votre image contient du bruit ou des dégradés subtils.
Vous ne pouvez pas avoir de couleurs d'arrière-plan transparentes dans vos fichiers JPEG. Le format de fichier JPEG ne prend pas en charge la transparence.
Si vous avez besoin d'un fond transparent, vous devez convertir le JPEG en
Exemple de commande:
convert your.jpg -transparent white your.png
Je viens de trouver une chose très soignée!
magicwand 1,1 -t 20 -f image -r outside -m overlay -o 0 image.jpg imgOutput.png
Il s'agit d'un script bash Fred Weinhaus qui peut être téléchargé à partir de ici (pour un usage non commercial uniquement). Il y a aussi environ 250 scripts !! et celui-ci est incroyable! il a fait exactement l'affaire, pour supprimer tout l'arrière-plan tout en gardant les points d'image internes intacts!
Sur sa page, il y a plusieurs images à titre d'exemples donc vous choisissez ce que vous devez mettre en ligne de commande!
La position initiale 1,1
est un devineur général qui dit que tout le contour est de fond.
Attention, la sortie doit être ".png"
C'est ma solution sans magicwand (remplacez magick
par convert
pour im <7.0):
magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png