批量清理 PNG 文件上的粗糙边缘

Batch cleanup of raggedy edges on PNG files

我有一个 PNG 图片(实际上是一大堆),它天生就有背景,后来被透明替换了。我不确定它是如何变成这样的,但是我收到的文件中有一堆粗糙的边缘需要删除。

我知道如何在 GIMP/Photoshop 中解决这个问题,但我有一大堆这些东西要修复——我需要使用 ImageMagick(或其他一些命令行实用程序)。我想要的结果是图像边缘干净,同时保留原件的 Alpha 通道透明度和颜色。

我过去使用过 ImageMagick 来转换文件格式和调整图像大小,但除此之外我没有太多经验。

我尝试了很多不同的东西,但只有一个(下面)接近我想要实现的目标。

这是我开始的...

这是我能做到的最好成绩

我使用 ImageMagick 通过羽化来清理它。我使用了这个命令:

convert test.png -alpha set -virtual-pixel transparent -channel A -blur 0x1.7 -level 50,75% +channel testFeathered.png

是否有人会推荐任何其他方法或技术来实现图像边缘平滑而不弄脏颜色的目标?

尝试使用 potrace 生成不透明度的平滑矢量并将其重新应用回原始图像:

因此,首先将 alpha 通道提取到 PGM 文件中:

convert dress.png -alpha extract opacity.pgm

然后用potrace平滑alpha通道并保存为opacitysmooth.pgm:

potrace -b pgm -o opacitysmooth.pgm opacity.pgm

然后将原始图像的不透明度替换为平滑后的图像:

convert dress.png opacitysmooth.pgm -compose copyopacity -composite result.png

一旦你理解了所有这些,你就可以像这样一口气搞定:

convert dress.png -alpha extract pgm:- | 
  potrace -b pgm -o - - | 
  convert dress.png - -compose copyopacity -composite result.png