使用 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
我正在尝试使用批处理删除电子商务网站产品图片中的背景。
问题是脚本还删除了产品内部的白色,使产品在某些区域保持透明..
例如:
命令:
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