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

ImageMagick:如何仅展平图像的一部分 问题,imagemagick,flatten,Imagemagick,Flatten,我只想展平图像的一部分 图像示例 以这幅图像为例: 它有透明的背景,我想保留(而不是重新创建),还有电缆外壳和机器之间的透明度(外壳在机器顶部)。图像的所有其他透明部分(即机器本身的透明度)应平坦 我已经知道的 我已经看到了这个问题,但它只处理不完全透明的像素,然而,我想将图像部分中所有非完全不透明的像素展平 我使用此命令展平整个图像: convert -flatten input.png output.png 我真的不明白你想做什么,也许你可以添加另一张显示预期结果的图片,好吗 同时,您可

我只想展平图像的一部分

图像示例 以这幅图像为例:

它有透明的背景,我想保留(而不是重新创建),还有电缆外壳和机器之间的透明度(外壳在机器顶部)。图像的所有其他透明部分(即机器本身的透明度)应平坦

我已经知道的 我已经看到了这个问题,但它只处理不完全透明的像素,然而,我想将图像部分中所有非完全不透明的像素展平

我使用此命令展平整个图像:

convert -flatten input.png output.png

我真的不明白你想做什么,也许你可以添加另一张显示预期结果的图片,好吗

同时,您可以将alpha/transparency层提取到单独的图像中,您可以使用该图像播放心仪的内容,如下所示:

convert input.png -alpha extract alpha.png

然后使用如下命令将其合并回图像(但我创建了洋红背景,而不是使用原始图像):

用青色填充外部背景,如下图所示,以保持其作为临时颜色,我们稍后会再次发现:

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

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

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

谢谢你,@MarkSetchell。我想要的只是一张只有透明背景的图片。物体(例如:机器)在物体的任何像素中都不应该是透明的。我只想在终端上做这件事,因为我想自动化用户输入图像的工作。在这张特定的图像中,我想去除两张图像中的两个矩形的透明度。那么,如果我把你的问题重新表述为。。。如果从左上角开始对背景进行泛光填充,您希望对alpha层中所有不会被泛光填充的“洞”进行泛光填充吗?很可能是的,我不确定“泛光填充”一词的含义。我想把这些“洞”中的所有像素都展平。我必须运行,但我已经加入了轮廓,这样你就可以开始了。
convert a.png -fuzz 80% -fill white -opaque black -fuzz 5% -fill black -opaque cyan b.png