Ooook. Après avoir beaucoup cherché sur Google et lu plus de manuel ImageMagick que je ne m'en soucie réellement, voici la réponse. Étant donné que vous avez une image en niveaux de gris appelée source.png
, voici mes commandes.
Pour rendre rendre les pixels noirs transparents et conserve les pixels blancs tels quels, exécutez cette commande :
convert source.png -alpha copy -fx '#fff' result.png
Pour à la place rendre les pixels blancs transparents tout en gardant le noir tel quel, utilisez :
convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png
Expliquons un peu plus en détail cette dernière commande :
convert
– Est-ce que la commande ImageMagic (une parmi plusieurs)source.png
– L'image source en niveaux de gris.-alpha copy
– Copiez le contenu du fichier précédent dans le canal alpha.-channel alpha
– Spécifiez que seuls les opérateurs suivants doivent affecter le canal alpha.-negate
– Inverser le canal alpha (sera, à cause du précédent-chanel alpha
n'affecte aucune autre partie de l'image).+channel
– Spécifiez que seuls les opérateurs suivants doivent affecter les canaux de couleur et ne plus modifier le canal alpha. (Il s'agit de la valeur par défaut, et nous n'avons donc pas besoin de la fournir dans le premier exemple plus simple.)-fx '#000'
– Remplacez le contenu du canal de couleur par des pixels noirs. (En raison de+channel
le canal alpha ne sera pas affecté).
Il est très important d'inclure ce dernier -fx
option, sinon tous les pixels semi-transparents de l'image générée conserveront leurs couleurs. (Étant donné que ces pixels sont à moitié transparents, ce n'est peut-être pas évident, mais le résultat final n'est pas celui auquel on s'attend.)
J'ai trouvé la liste des options d'ImageMagick très utile.