我有一个灰度图像,我希望将所有灰色像素转换为半透明像素,将白色像素转换为透明像素。
如何通过shell处理灰度光栅图像?
输入:
输出(此处通过Gimp制作):
通过GUI进行当前的Gimp流程:
答案 0 :(得分:2)
[注意:SO图像显示,图像背景CSS很难看到文件之间的差异。]
给出以下灰度input.png
:
1a上。要使此图像的黑色像素透明并线性保持白色像素,请运行以下命令:
convert source.png -alpha copy -fx '#fff' result.png
1b中。要使白色像素透明并线性保持黑色,请使用:
convert source.png -alpha copy -channel alpha -negate +channel result.png
<强>手册强>
1b的结果:
消灭平原:
额外的处理可以消除大部分平坦的平原,这些平原出现在灰色(#DDDDDD
)周围,不透明度:~50%。这可以通过以下方式完成:
convert input.png -fuzz 8% -transparent "#DDDDDD" grey_no.8pc.png
convert grey_no.8pc.png -alpha copy -channel alpha -negate +channel result.grey_no.png
所以平原避免了无用的#DDDDDD, opacity:50%
叠加。
另见: