GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren Sie ein Graustufenbild in ein Alphakanalbild in der Unix-Shell

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.


Linux
  1. Arrays in der Unix-Bourne-Shell?

  2. Verwenden von Vi-Tasten zum Bearbeiten von Shell-Befehlen in Unix?

  3. Wie konvertiere ich die Shell-Ausgabe von Linux in HTML?

  4. Konvertieren Sie die ls-Ausgabe in csv

  5. Wie konvertiere ich ein Linux-Festplatten-Image in eine Sparse-Datei?

Konvertieren Sie Ihre Windows-Installation in eine VM unter Linux

So konvertieren Sie eine Windows-Datei in eine UNIX-Datei

Konvertieren Sie TrueType-Glyphen in ein PNG-Bild?

Konvertieren Sie .txt in .csv in der Shell

Bild in Text umwandeln

oxps in pdf oder image - Linux