ImageMagick:如何仅展平图像的一部分

时间:2019-06-15 10:28:05

标签: imagemagick flatten

问题

我只想展平图像的一部分。

图片示例

以这张图片为例

enter image description here

它具有透明的背景,我想保留(而不是重新创建),并且电缆套管和机器之间也要透明(套管在机器顶部)。图像的所有其他透明部分(即机器本身中的 的透明度)应平坦化。

我已经知道的东西

我已经看到了this问题,但是它仅处理不完全透明的像素,但是,我想将图像中所有不完全不透明的像素弄平。

我使用以下命令将整个图像展平:

convert -flatten input.png output.png

1 个答案:

答案 0 :(得分:1)

我不太了解您要做什么,也许您可​​以添加另一张显示预期结果的图像?

与此同时,您可以将alpha /透明层提取到一个单独的图像中,以便像您的心脏内容那样播放:

convert input.png -alpha extract alpha.png

enter image description here

,然后使用类似的命令合并回图像(但我在此创建洋红色背景而不是使用原始图像):

convert -size 800x600 xc:magenta alpha.png -compose copyalpha -composite result.png

enter image description here

像这样用青色填充外部背景,以将其保留为临时颜色,我们稍后可以再次找到:

convert alpha.png -fill cyan -draw 'color 0,0 floodfill' a.png

enter image description here

现在将所有不是青色的东西都变成白色,然后将所有青色的东西都变成黑色:

convert a.png -fuzz 80% -fill white -opaque black -fuzz 5% -fill black -opaque cyan b.png

enter image description here