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

How to remove specific white space from image using ImageMagick

目前,我有数以千计的图片想要去除对象周围的白色 space,但对象内部没有。但是,白space并不是一成不变的。见下图。

图片1:

图二:

图3:

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

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

有什么建议吗?

去掉白色space是什么意思?如果你的意思是让它透明,那么在 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


这是生成的图像。

当然你要下载它们才能看到它们是透明的。

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

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

如果使用 ImageMagick 7,请将 matte 更改为 alpha,并将 mogrify 更改为 magick mogrify。