【发布时间】:2017-10-24 21:27:54
【问题描述】:
我正在尝试使用GraphicsMagick for Node 将所有不透明像素替换为给定颜色。
使用合成图像不是一种选择,我只需将每个不透明像素更改为给定颜色。
原图:
目标:
透明像素应保持透明。我正在尝试实现 Photoshop 的颜色叠加效果:
【问题讨论】:
标签: node.js imagemagick graphicsmagick gm
我正在尝试使用GraphicsMagick for Node 将所有不透明像素替换为给定颜色。
使用合成图像不是一种选择,我只需将每个不透明像素更改为给定颜色。
原图:
目标:
透明像素应保持透明。我正在尝试实现 Photoshop 的颜色叠加效果:
【问题讨论】:
标签: node.js imagemagick graphicsmagick gm
我不熟悉 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
【讨论】:
【讨论】:
gm convert 84xHk.png -fill "#E91FCB" +opaque none result.png) 会给出以下输出:gm convert: Unable to open file (none) [No such file or directory].