Використовуйте imagemagick для перетворення непрозорого кольору в альфа


10

У мене зображення з чорним фоном з білими елементами на передньому плані. Зображення має згладжування, тому є "між" пікселі, які не є строго чорними або білими. Я хотів би зробити фон прозорим. Я знайшов кілька посилань, як це зробити за допомогою Imagemagick, але всі вони суворо замінюють один колір (скажімо, # 000000FF "на повну альфа" # 00000000 "). Я хочу зберегти змішування ... так що якщо є сірий піксель" # 777777FF ", вона перетвориться на щось на зразок" # FFFFFF77 ", або що б не мало сенсу.

Хтось знає, як це зробити?

Відповіді:


11

Ця стаття дуже добре пояснює, як це зробити:
http://www.imagemagick.org/Usage/masking/#alpha

Я написав невеличку статтю про це у своєму блозі:
http://mostlycoincidence.blogspot.se/2012/12/imagemagick-making-glyphs-transparent.html

В основному, ви хочете створити маску, а потім застосувати маску до зображення. Це можна зробити в два етапи:

$ 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

Це зробить білий прозорим кольором. Щоб зробити чорний колір прозорості, зніміть -negateпрапор.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.