J'ai des images PNG transparentes et je dois créer des versions avec le calque d'image composé sur un fond blanc. J'ai essayé différentes choses avec les opérations de "conversion" d'Image Magick, mais soit rien ne se produit, soit je reçois une erreur. Je ne veux pas passer à un formulaire JPG intermédiaire parce que je ne veux pas des artefacts. Bien sûr, il est facile de le faire dans Gimp ou Photoshop ou autre, mais je préfère vraiment l'écrire à partir de la ligne de commande car il y a beaucoup de ces choses.
Un exemple de commande Image Magick non fonctionnelle est:
convert img1.png -background white -flatten img1-white.png
Cela entraîne une erreur.
Merci!
Réponses:
Cela fonctionne pour moi:
Références documentaires:
-flatten
option de ligne de commande-layers
option de ligne de commande (-flatten
équivaut à-layers flatten
)la source
-flatten
. Il aplatira les pages en une seule page.mogrify -flatten *.png
juste au cas où, n'oubliez pas de faire une sauvegarde. Plus d'infos ici: imagemagick.org/script/mogrify.phpExemple:
N'hésitez pas à remplacer
white
par n'importe quelle autre couleur que vous souhaitez. La documentation d'Imagemagick dit ceci sur l'-alpha remove
opération:la source
-background white
n'est pas nécessaire (c'est probablement pour d'autres couleurs cependant).-alpha off
.convert image.png -background white -alpha off white.png
produit une image avec un fond noir.convert image.png -background "#00ff33" -alpha off 00ff33.png
produit un fond noirL'aplatissement de l'image et l'application de l'image d'arrière-plan sont simples dans ImageMagick
Cependant, l'ordre des commandes est très important
Pour appliquer un arrière-plan sur une image transparente et l'aplatir, appliquez d'abord l'arrière-plan avant de l'aplatir. L'inverse ne fonctionne pas.
la source
La seule qui a fonctionné pour moi était un mélange de toutes les réponses:
la source
... -background "#010203" ...
au lieu d'utiliser du blanc.mogrify -background white -flatten */*.png
-alpha remove
était ce qui a fait pour moivoici comment remplacer la même image dans tous les dossiers d'un répertoire avec du blanc au lieu de transparent:
mogrify -background white -flatten */*.png
la source
L'utilisation de -flatten m'a rendu complètement fou parce que -flatten en combinaison avec mogrify crop et redimensionnement ne fonctionne tout simplement pas. Le moyen officiel et pour moi le seul correct est de "supprimer" le canal alpha.
-alpha supprimer -alpha off (pas nécessaire avec JPG)
Voir la documentation: http://www.imagemagick.org/Usage/masking/#remove
la source
convert imgWithTranspBkg.png -alpha remove -alpha off bkg.jpg resultImg.png
La section Alpha Remove du Guide d'utilisation d'ImageMagick suggère d'utiliser l'
-alpha remove
option, par exemple:...en utilisant le
-background
couleur de votre choix.Le guide déclare:
Il ajoute en outre la note:
Ainsi, si vous n'avez pas besoin du canal alpha, vous pouvez réduire la taille de votre image de sortie en ajoutant l'
-alpha off
option, par exemple:Il existe plus de détails sur les autres techniques fréquemment utilisées pour supprimer la transparence décrites dans la section Suppression de la transparence des images .
Cette section mentionne une mise en garde importante à l'utilisation de
-flatten
comme technique pour éliminer la transparence:Donc, si vous convertissez plusieurs images à la fois, par exemple en générant des miniatures à partir d'un fichier PDF, vous
-flatten
ne ferez pas ce que vous voulez (cela aplatira toutes les images de toutes les pages en une seule image). D'un autre côté, l'utilisation de la-alpha remove
technique produira toujours plusieurs images, chacune ayant la transparence supprimée.la source
Il semble que votre commande soit correcte, donc le problème peut être dû à un support manquant pour PNG (). Vous pouvez vérifier avec
convert -list configure
ou simplement essayer ce qui suit:la source
libpng12-0
installé et fonctionne. Pouvez-vous voir png si vous exécutez cela?convert -list configure | grep \png
Ce n'est pas exactement la réponse à votre question, mais j'ai trouvé votre question en essayant de comprendre comment supprimer le canal alpha, j'ai donc décidé d'ajouter cette réponse ici:
Si vous souhaitez supprimer le canal alpha en utilisant imagemagick, vous pouvez utiliser cette commande:
la source
Welp, il semble que ma décision d'installer "Graphics Magick" sur "Image Magick" a des bords rugueux - lorsque je réinstalle une ancienne "Image Magick" authentique et cruelle, la commande ci-dessus fonctionne parfaitement bien.
modifier , longtemps plus tard - Un de ces jours, je vérifierai si "graphics magick" a résolu ce problème.
la source
J'avais besoin de: à la fois
-alpha background
et-flatten
, ou-fill
.J'ai fait un nouveau PNG avec un fond transparent et un point rouge au milieu.
convert image.png -background green -alpha off green.png
a échoué: il a produit une image avec un fond noirconvert image.png -background green -alpha background -flatten green.png
produit une image avec le bon fond vert.Bien sûr, avec un autre fichier que j'ai renommé
image.png
, il n'a rien fait. Pour ce fichier, j'ai trouvé que la couleur des pixels transparents était "# d5d5d5", j'ai donc rempli cette couleur de vert:convert image.png -fill green -opaque "#d5d5d5" green.png
remplacé les pixels transparents par le vert correct.la source
convert image.png -background green -alpha background -alpha off green.png
ouconvert image.png -background green -alpha background -alpha remove green.png
ouconvert image.png -background green -flatten green.png
Option sans ligne de commande: ouvrez le fichier PNG dans Windows Paint et cliquez sur Enregistrer.
la source
cela crée une image en plaçant simplement le 1er avec transparence au-dessus du 2e
à l'origine trouvé l'astuce sur ce post
la source
Pour supprimer réellement le canal alpha du fichier, utilisez l' option alpha off :
la source
J'ai vu cette question et les réponses qui m'aident vraiment, mais il fallait que je le fasse pour beaucoup de fichiers, donc au cas où vous avez plusieurs images (images PNG) dans un dossier et que vous vouliez le faire pour tous:
la source
C'est -alpha désactivé, PAS -alpha supprimer! Le téléchargement de l'App Store iOS échoue lorsqu'il y a un canal alpha dans n'importe quelle icône !!
Voici comment procéder: mogrify -alpha off * .png
la source