imagemagick具有抗锯齿的多色和透明图像

时间:2014-11-24 07:19:52

标签: image-processing imagemagick transparency antialiasing

原始图片:

enter image description here

这需要实现。 enter image description here

砖图片: enter image description here

我有很多像下面的图像

enter image description here

我需要将此图像与颜色相乘" rgba(103,68,56,5)"并使中心白色部分透明。

我的方式:

转换mortar.png(-clone 0 -fill' rgba(103,68,56,5)' -colorize 100)-channel rgba -alpha on -compose Multiply -composite迫击炮.PNG

转换mortar.png -transparent' rgba(103,68,56,5)' mortar.png

我得到的结果是:

enter image description here

如果想要的图像如下图所示:只需看一下图像的内侧角线和白色区域上可以忽略的点。

enter image description here

我尝试过不同的模糊值,但是会使图像质量下降,并在彩色区域放置孔。

请右键单击图像并将其保存在您的位置,以查看完整图像的样子。

使用命令

添加模糊后的输出

转换m.png -blur 0x.3(+ clone -fill' rgba(103,68,56,5)' -colorize 100)-channel rgba -alpha on -compose Multiply -composite -t​​ransparent' rgba(103,68,56,5)' out.png

enter image description here

期望的输出:

enter image description here

1 个答案:

答案 0 :(得分:0)

更新了答案

我认为问题在于你的原始迫击炮图像已经在边界周围嘈杂。我将它带入Photoshop并放大了很多,你可以看到它周围有嘈杂的人工制品。

enter image description here

我只能想到模糊它们然后将它们设置为纯白色,因为有些嘈杂的位实际上也出现在你不希望它们透明的真实边框中。我正在考虑这些问题:

convert mortar.png -blur 0x3 -white-threshold 95% -transparent white \( +clone -fill 'rgb(103,68,56)' -colorize 100 \) -compose Multiply -composite out.png

不确定还有什么建议。

原始答案

我认为您可能会发现添加少量模糊以帮助边缘是有用的,并且还可以像这样一次性完成:

convert mortar.png -blur 0x.3 \( +clone -fill 'rgba(103,68,56,5)' -colorize 100 \) -channel rgba -alpha on -compose Multiply -composite -transparent 'rgba(103,68,56,5)'  out.png