我尝试使用GraphicsMagick for Node将所有非透明像素替换为给定颜色。
使用合成图像不是一种选择,我只需要将每个非透明像素更改为给定的颜色。
原始图片:
目标:
透明像素应保持透明。我试图实现Photoshop的色彩叠加效果:
答案 0 :(得分:3)
答案 1 :(得分:2)
我不熟悉Node的GraphicsMagick库,但有几种方法可以实现这一点。这是我能想到的一些......
提取alpha并替换颜色
convert 84xHk.png -alpha extract \
-negate -fill '#E91FCB' -fuzz 50% \
-opaque black output.png
创建纯色图像,并复制Alpha通道
convert 84xHk.png \
\( +clone -alpha off \
-fill '#E91FCB' \
-draw 'color 0,0 reset' \
\) +swap -compose CopyOpacity -composite output.png
使用FX表达式
convert 84xHk.png -fx 'p.a==1?#E91FCBFF:#E91FCB00' output.png