Usa imagemagick per convertire i colori opachi in alfa


10

Ho un'immagine con uno sfondo nero con elementi bianchi in primo piano. L'immagine ha un effetto levigato, quindi ci sono pixel "nel mezzo" che non sono rigorosamente bianchi o neri. Vorrei rendere lo sfondo trasparente. Ho trovato diversi link su come farlo con imagemagick, ma tutti sostituiscono rigorosamente un colore (diciamo # 000000FF "con l'alfa completa" # 00000000 "). Voglio preservare la fusione ... quindi se c'è un pixel grigio" # 777777FF ", si trasformerebbe in qualcosa come" # FFFFFF77 ", o qualunque cosa abbia senso.

Qualcuno sa come fare questo?

Risposte:


11

Questo articolo spiega molto bene come farlo:
http://www.imagemagick.org/Usage/masking/#alpha

Ho scritto un piccolo articolo a riguardo sul mio blog:
http://mostlycoincidence.blogspot.se/2012/12/imagemagick-making-glyphs-transparent.html

Fondamentalmente, quello che vuoi fare è creare una maschera e quindi applicare la maschera all'immagine. Puoi farlo in due passaggi:

$ 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

Questo renderà il bianco il colore trasparente. Per rendere nero il colore della trasparenza rimuovere la -negatebandiera.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.