GraphicsMagick / ImageMagickreplace所有不透明的像素(如Photoshop的颜色叠加)
我正在尝试使用GraphicsMagick for Node将所有不透明的像素replace为给定的颜色。
使用合成图像不是一个选项,我只需要将每个不透明像素更改为给定的颜色。
原始图像:
目标:
透明像素应该保持透明。 我正在尝试实现Photoshop的颜色叠加效果:
这有点简单。 在ImageMagick中执行以下操作:
convert 84xHk.png -fill "#E91FCB" +opaque none result.png
我不熟悉Node的GraphicsMagick库,但有几个方法可以实现这一点。 这里有一些我能想到的…
提取alpha,并replace颜色
convert 84xHk.png -alpha extract \ -negate -fill '#E91FCB' -fuzz 50% \ -opaque black output.png
创build纯色图像,并复制alpha通道
convert 84xHk.png \ \( +clone -alpha off \ -fill '#E91FCB' \ -draw 'color 0,0 reset' \ \) +swap -compose CopyOpacity -composite output.png
使用FXexpression式
convert 84xHk.png -fx 'pa==1?#E91FCBFF:#E91FCB00' output.png