如何使用 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。
目前,我有数以千计的图片想要去除对象周围的白色 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。