【问题标题】:imagmgick multiple color and transparent image with anti aliasingimagmgick 具有抗锯齿的多色透明图像
【发布时间】:2015-01-21 20:39:46
【问题描述】:

原图:

这是需要实现的。

砖图像:

我有很多像下面这样的图片

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

我的做法:

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

转换迫击炮.png -transparent 'rgba(103,68,56,5)'迫击炮.png

我得到的结果图像是:

所需的图像如下所示:只需查看图像的内角线和您可以忽略的白色区域上的点。

我也尝试过使用不同的模糊值,但这会进一步降低图像质量并在彩色区域留下孔。

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

使用命令添加模糊后的输出

转换 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

期望的输出:

【问题讨论】:

    标签: image-processing imagemagick transparency antialiasing


    【解决方案1】:

    更新答案

    我认为问题在于您的原始砂浆图像在边界周围已经很嘈杂。我把它放到 Photoshop 中放大了很多,你可以看到它的边缘有嘈杂的伪影。

    我只能考虑模糊这些,然后将它们阈值化为纯白色,因为一些嘈杂的位实际上也出现在您不希望它们变得透明的真实边界中。我的思路是这样的:

    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
    

    【讨论】:

    • 我已经用命令的输出以及所需的输出更新了问题。你能看看吗?
    • 我已经添加了原始问题中的原始图像。我认为我们可以使用原始图像做一些事情,因为它有 alpha 图像。请看一看。
    • 看原问题我已经添加了需要实现的流图。
    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多