Bonjour.
Je cherche une méthode pour convertir un PNG qui dispose d'un canal alpha, en jpeg.
Le problem c'est qu'avec convert (ImageMagick), la couleur par défaut utilisée pour convertir le canal alpha en couleur solide, c'est le noire.
J'aimerai pouvoir choisir la couleur de fond du futur jpeg, de façon à ce que la partie visible du PNG apparaisse par dessus et non sur du noire.
Bien entendu c'est pour traiter une grosse série d'images PNG, et il faut savoir que je ne connais pas à l'avance les dimensions des images, ces dernière étant variables.
Je ne peux peut être me servir d'un script pour Gimp mais j'aimerai autant éviter.
J'ai essayé plusieurs méthode avec convert, sans résultats pour le momemt...donc merci d'avance pour toute réponse.
Bonne journée à toutes et à tous.
# search the f* web
Posté par symoon . Évalué à 1.
j'ai trouvé un paramètre genre :
-transparent
[^] # Re: search the f* web
Posté par brunus (site web personnel) . Évalué à 3.
Le paramètre -transparent ne force la transparence que sur une seule couleur, dont on indique les composante RVB. Cela n'a donc rien à voir avec l'utilisation d'un canal alpha sur 156 niveaux de gris.
Merci quand même.
J'ai trouvé la commande qu'il me fallait mais elle a une contrainte, je dois récupérer la taille de l'image initiale et forcer la taille de l'image d'arrivée, car entre les deux j'utilise une très grande image qui contient ma couleur de fond. Et si je ne force pas ces dimensions, mon image de destination à pris la taille du fond de couleur.
Cela donne à l'origine quelque chose comme :
composite -compose src-over test.png fond.png test.jpg
Mais dans ce cas, test.jpg à les dimensions de fond.png
Pour récupérer les dimensions d'une image c'est simple:
identify -format "%w" test.png
pour avoir la largeur de l'image...
Avec ça je dois pouvoir faire un script, mais j'aurai bien aimé me passer de l'image de fond et je suis sur que c'est possible.
# Ma méthode actuelle
Posté par brunus (site web personnel) . Évalué à 4.
#récuperer la largeur de l'image à traiter
let W=`identify -format "%w" test.png`
#récuperer la hauteur de l'image à traiter
let H=`identify -format "%h" test.png`
#composer le résultat en forçant la taille et en posant la source au dessus du fond
composite -geometry "$W"x"$H" -compose src-over test.png fond.png test.jpg
- test.png est la source qui contient un canal alpha
- fond.png est une image de très grande taille (supérieure à tous ce que je pourrai trouver au niveau des images sources)
- test.jpg est l'image de destination
Mais j'aimerai bien me passer de cette image de fond...
# Ma méthode actuelle
Posté par brunus (site web personnel) . Évalué à 2.
#récuperer la largeur de l'image à traiter
let W=`identify -format "%w" test.png`
#récuperer la hauteur de l'image à traiter
let H=`identify -format "%h" test.png`
#composer le résultat en forçant la taille et en posant la source au dessus du fond
composite -geometry "$W"x"$H" -compose src-over test.png fond.png test.jpg
- test.png est la source qui contient un canal alpha
- fond.png est une image de très grande taille (supérieure à tous ce que je pourrai trouver au niveau des images sources)
- test.jpg est l'image de destination
Mais j'aimerai bien me passer de cette image de fond...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.