如何使用 ImageMagick 去除透明 png 图像边缘的灰色/黑色伪影

问题描述 投票:0回答:1

我注意到图像边缘有一些黑色或灰色像素,我想使用 ImageMagick 清理它们。

您能否提供一些关于如何删除这些黑色或灰色边缘像素,同时确保图像中的其他黑色或灰色像素不受影响的指导?

我们将非常感谢您的帮助。谢谢!

java imagemagick
1个回答
0
投票

嗯,首先我在图像的边缘或其他地方没有看到任何黑色或灰色像素?

如果我将你的图像平铺到石灰背景上,我应该能够看到它们:

magick glow.png -background lime -flatten result.png

让我们看看图像的组成通道,将它们分开并在页面上放置 R、G、B、A,通道之间有 10 px 的间隙:

magick glow.png -separate +smush 10 channels.png 

假设您的问题确实想稍微增加透明区域(即最右侧通道中的黑色环绕)的大小,以便我们看不到其他(RGB)通道的锯齿状边缘。我们可以通过稍微侵蚀白色区域来做到这一点:

magick glow.png -resize 400x -channel A -morphology erode disk:20 result.png

如果我们再次分离出通道,您可以看到右侧的 Alpha 通道中发生了什么:

magick result.png -separate +smush 10 channels.png 

© www.soinside.com 2019 - 2024. All rights reserved.