批量清理PNG文件上的破烂边缘

时间:2016-04-14 03:52:47

标签: image-processing imagemagick antialiasing

我有一个PNG图像(实际上,一大堆' em)出生时带有背景并被透明度取代。我不确定它是怎么做到的,但我收到的文件中有一堆破旧的边缘需要删除。

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

我过去曾使用ImageMagick转换文件格式并调整图片大小,但除此之外我没有多少经验。

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

这是我开始时的内容......

enter image description here

这是我能够取得的最好成绩

我使用ImageMagick用羽毛清理它。我用了这个命令:

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

enter image description here

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

1 个答案:

答案 0 :(得分:1)

尝试使用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

enter image description here

一旦你理解了所有这些,你就可以一气呵成地完成这一切:

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