使用imagemagick将不透明颜色转换为alpha

使用imagemagick将不透明颜色转换为alpha

我有一张黑色背景的图片,前景中有白色元素。该图片经过了平滑处理,因此中间存在一些并非严格意义上的黑色或白色像素。我想让背景透明。我找到了几个关于如何使用 imagemagick 执行此操作的链接,但它们都严格替换一种颜色(例如,使用全 alpha 值“#00000000”替换“#000000FF”)。我想保留混合效果……因此,如果有一个灰色像素“#777777FF”,它将被转换为“#FFFFFF77”之类的颜色,或者任何有意义的颜色。

有谁知道如何做到这一点?

答案1

这篇文章很好地解释了如何做到这一点:
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标志。

相关内容