Ooookaay. Nachdem ich viel gegoogelt und mehr im ImageMagick-Handbuch gelesen habe, als mir wirklich wichtig ist, ist hier die Antwort. Vorausgesetzt, Sie haben ein Graustufenbild namens source.png
, hier sind meine Befehle.
Um die schwarzen Pixel transparent zu machen und die weißen Pixel so behält, wie sie sind, führen Sie diesen Befehl aus:
convert source.png -alpha copy -fx '#fff' result.png
Um stattdessen die weißen Pixel transparent zu machen Während das Schwarz unverändert bleibt, verwenden Sie:
convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png
Lassen Sie uns diesen letzten Befehl etwas ausführlicher erklären:
convert
– Ist der ImageMagic-Befehl (einer von mehreren)source.png
– Das Graustufen-Quellbild.-alpha copy
– Inhalt der vorherigen Datei in den Alphakanal kopieren.-channel alpha
– Geben Sie an, dass die folgenden Operatoren nur den Alphakanal beeinflussen sollen.-negate
– Invertieren Sie den Alphakanal (wird, wegen der vorherigen-chanel alpha
keinen anderen Teil des Bildes beeinflussen).+channel
– Geben Sie an, dass die folgenden Operatoren nur die Farbkanäle beeinflussen und nicht mehr den Alphakanal ändern sollen. (Dies ist die Standardeinstellung und muss daher im ersten, einfacheren Beispiel nicht angegeben werden.)-fx '#000'
– Farbkanalinhalte durch schwarze Pixel ersetzen. (Wegen+channel
der Alphakanal wird nicht beeinflusst).
Es ist sehr wichtig, diesen letzten -fx
einzufügen andernfalls behalten alle halbtransparenten Pixel im generierten Bild die Farben bei. (Da diese Pixel halbtransparent sind, ist es vielleicht nicht offensichtlich, aber das Endergebnis ist nicht das, was man erwartet.)
Ich fand die Liste der ImageMagick-Optionen sehr nützlich.