如何在ImageMagick中用透明的图像替换白色背景颜色?

时间:2012-09-14 11:54:11

标签: imagemagick background-image background-color

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

4 个答案:

答案 0 :(得分:52)

您的JPEG中无法使用透明背景颜色。 JPEG文件格式不支持透明度。

如果您需要透明背景,则需要将JPEG转换为

  • PNG(高质量,文件大小可能大于JPEG)
  • 或GIF(如果您可以容忍低质量和最多255种颜色的范围)。

示例命令:

convert  your.jpg  -transparent white  your.png

答案 1 :(得分:38)

首先,您需要将图像格式从.jpg转换为.png格式,因为JPEG不支持透明度。然后使用此命令:

convert image1.png -fuzz 20% -transparent white result.png

-fuzz选项允许将纯白色的指定百分比偏差转换为透明。这很有用,例如,当您的图像包含噪点或细微渐变时。

答案 2 :(得分:8)

我刚刚找到了一件非常整洁的东西!

magicwand 1,1 -t 20 -f image -r outside -m overlay -o 0 image.jpg imgOutput.png

这是一个Fred Weinhaus bash脚本,可以从here下载(仅限非商业用途)。还有大约250个脚本!!而且这个太棒了!它确实完成了诀窍,删除所有背景,同时保持内部图像点不受影响!

在他的页面上,有几个图像作为示例,因此您可以选择需要放在命令行上的内容!

初始位置1,1是一般猜测,所有轮廓都是背景。

注意输出必须是" .png"

答案 3 :(得分:2)

这是我没有魔术棒的解决方案(magick替换convert以获取im< 7.0):

magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png