如何使用ImageMagick从图像中删除特定的空白

时间:2019-05-25 20:07:17

标签: imagemagick imagemagick-convert

当前,我有成千上万张图片,我想摆脱对象周围的空白,而不是对象内部的空白。但是,空白不是恒定的。参见下面的图片。

图片1:

enter image description here

图片2:

enter image description here

图片3:

enter image description here

这样的选项不起作用,因为它们会删除图像中的所有空白

convert image.png -fuzz 10% -transparent white output.png

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

摆脱空白是什么意思?如果要使其透明,则在ImageMagick 6中,可以使用mogrify命令如下处理整个图像文件夹:

此过程涉及用白色的1个像素边框填充图像,以确保白色无处不在。然后进行模糊的洪水填充。然后将多余的一个像素全部删除。我假设背景色几乎是白色的。根据需要更改模糊值。

Create a new directory to hold the output (or backup your input directory)
Change directory to the one holding your input images

mogrify -path path_to/outdirectory -format png -bordercolor white -border 1 -fuzz 20% -fill none -draw "matte 0,0 floodfill" -shave 1x1 *.png


这是生成的图像。

enter image description here

enter image description here

enter image description here

当然,您必须下载它们以确保它们透明。

请注意,我下载的图像是JPG。因此,如果您的图像是jpg而不是命令中的png,则将* .png更改为* .jpg。或者只是使用*更改所有格式。

请参阅 https://imagemagick.org/Usage/basics/#mogrify https://imagemagick.org/Usage/draw/#matte

如果使用ImageMagick 7,则将遮罩更改为alpha,然后将mogrify更改为magick mogrify。