使用 ImageMagick 删除白色背景但不删除图片内的白色?

remove white background with ImageMagick but not the white inside picture?

我正在尝试使用批处理删除电子商务网站产品图片中的背景。

问题是脚本还删除了产品内部的白色,使产品在某些区域保持透明..

例如:

命令:

convert *.jpg  -set filename: %t -fuzz 5% -transparent white %[filename:].png

这是我能得到的最好的..我对产品周围的这个结果没问题,但我需要产品内部的白色保持白色而不透明。

您当前方法的问题是它不遵守边界,它只是全局应用,使所有白色像素透明,无论它们与背景的连接如何。

相反,使用 "floodfill" 会更好,它只会涌入 top-left 角像素模糊距离内的区域。

所以,我选择了一种未使用的洋红色,这样您就可以看到发生了什么:

convert product.jpg -fuzz 5% -fill magenta -draw 'color 0,0 floodfill' result.png

然后您将按照如下命令使洋红色透明:

convert product.jpg -fuzz 5% -fill magenta -draw 'color 0,0 floodfill' -transparent magenta result.png