Verwenden Sie imagemagick, um undurchsichtige Farben in Alpha umzuwandeln

10

Ich habe ein Bild mit einem schwarzen Hintergrund mit weißen Elementen im Vordergrund. Das Bild ist geglättet, daher gibt es dazwischen liegende Pixel, die nicht ausschließlich schwarz oder weiß sind. Ich möchte den Hintergrund transparent machen. Ich habe mehrere Links gefunden, wie man das mit imagemagick macht, aber alle ersetzen strikt eine Farbe (sagen wir # 000000FF "durch volles Alpha" # 00000000 "). Ich möchte die Überblendung beibehalten ... also, wenn es ein graues Pixel gibt" # 777777FF ", es würde sich in etwas wie" # FFFFFF77 "verwandeln, oder was auch immer Sinn machen würde.

Weiß jemand, wie man das macht?

funkelnd
quelle

Antworten:

11

Dieser Artikel erklärt sehr gut, wie das geht:
http://www.imagemagick.org/Usage/masking/#alpha

Ich habe einen kleinen Artikel darüber in meinem Blog geschrieben:
http://mostlycoincidence.blogspot.se/2012/12/imagemagick-making-glyphs-transparent.html

Grundsätzlich möchten Sie eine Maske erstellen und diese dann auf das Bild anwenden. Sie können dies in zwei Schritten tun:

$ convert image.png -colorspace HSB -separate -negate image_mask.png
$ convert image.png -alpha Off \
>    image_mask.png -compose CopyOpacity -composite \
>    PNG32:image_alpha.png

Dadurch wird Weiß zur transparenten Farbe. Um Schwarz zur Transparenzfarbe zu machen, entfernen Sie die -negateFlagge.

RaHorakhti
quelle