我有一张.jpg format
图片white background color
。我想将白色背景颜色删除为透明Imagemagick
。我尝试了很多方法,但仍然无法删除白色背景。有人可以帮我解决这个问题。
问问题
36525 次
4 回答
71
您的 JPEG 文件中不能有透明的背景颜色。JPEG 文件格式不支持透明度。
如果需要透明背景,则需要将 JPEG 转换为
- PNG(高质量,文件大小可能大于 JPEG)
- 或 GIF(如果您可以容忍低质量和最多 255 种颜色的范围)。
示例命令:
convert your.jpg -transparent white your.png
于 2012-09-14T19:03:41.370 回答
61
首先,您需要将图像格式从转换.jpg
为.png
格式,因为 JPEG 不支持透明度。然后使用这个命令:
convert image1.png -fuzz 20% -transparent white result.png
该-fuzz
选项还允许将与纯白色的指定百分比偏差转换为透明。这很有用,例如,当您的图像包含噪声或细微渐变时。
于 2012-09-15T03:43:17.113 回答
11
我刚刚发现了一个非常整洁的东西!
magicwand 1,1 -t 20 -f image -r outside -m overlay -o 0 image.jpg imgOutput.png
这是一个 Fred Weinhaus bash 脚本,可以从这里下载(仅用于非商业用途)。还有大约250个脚本!这个太棒了!它确实做到了,去除所有背景,同时保持内部图像点不受影响!
在他的页面上,有几个图像作为示例,因此您可以选择需要放在命令行上的内容!
初始位置1,1
是一般猜测者,说所有轮廓都是背景。
注意输出必须是“.png”
于 2014-06-30T20:21:13.160 回答
3
这是我没有魔法棒的解决方案(替换magick
为convert
for im < 7.0):
magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png
于 2015-11-05T09:37:00.027 回答