43

我有一张.jpg format图片white background color。我想将白色背景颜色删除为透明Imagemagick。我尝试了很多方法,但仍然无法删除白色背景。有人可以帮我解决这个问题。

4

4 回答 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

这是我没有魔法棒的解决方案(替换magickconvertfor im < 7.0):

magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png
于 2015-11-05T09:37:00.027 回答