384 votes

Remplacer la transparence des images PNG avec un fond blanc

J'ai quelques images PNG avec de la transparence, et j'ai besoin de créer des versions avec l'image de la couche de composé sur un fond blanc. J'ai essayé différentes choses avec Image Magick "convertir", mais soit il ne se passe rien du tout ou j'obtiens une erreur. Je ne veux pas aller à l'intermédiaire JPG forme parce que je ne veux pas les objets. Bien sûr, il est facile de le faire dans Gimp ou Photoshop ou autre, mais j'aimerais vraiment plutôt script à partir de la ligne de commande, car il y a beaucoup de ces choses.

Un exemple de non-travail de l'Image Magick commande est:

convert img1.png -background white -flatten img1-white.png

Qui entraîne une erreur.

Merci!

504voto

Rok Kralj Points 11593

J’ai une solution qui non seulement remplace la transparence avec la couleur arbitraire, mais supprime également la couche alpha, ce qui réduit la taille du fichier image.

Il suffit d’appeler votre script de conversion avec :

Exemple :

N’hésitez pas à remplacer `` avec n’importe quel autre couleur que vous voulez.

308voto

remosu Points 1549

ce travail pour moi

47voto

acpmasquerade Points 854

Aplatir l’image et appliquer l’image d’arrière-plan sont franche dans ImageMagick

Toutefois, l’ordre des commandes est très important

Pour appliquer un arrière-plan sur une image transparente et l’aplatir, tout d’abord appliquer l’arrière-plan de l’aplatir. L’inverse ne fonctionne pas.

11voto

Aide - aplatir m’a fait complètement fou parce que - aplatir en combinaison avec une culture mogrify et redimensionnement ne fonctionne pas tout simplement. Le fonctionnaire et pour moi seule bonne façon est de « supprimer » le canal alpha.

-retirer alpha - alpha off (ne pas nécessaire avec JPG)

Voir documentation : http://www.imagemagick.org/Usage/masking/#remove

5voto

Alastair Points 1492

Il semble que votre commande est correcte, donc le problème est peut-être en raison de l’appui manquant pour PNG (). Vous pouvez vérifier avec `` ou juste essayer ce qui suit :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X