【问题标题】:How to replace white background color with transparent of an image in ImageMagick?如何在 ImageMagick 中用透明图像替换白色背景颜色?
【发布时间】:2012-09-07 14:08:20
【问题描述】:

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

【问题讨论】:

  • 你尝试了什么?您可能必须先将其转换为“索引颜色”模式(例如 PNG)。无论您如何操作,您都可以预期在图像和透明之间的边界处出现伪影。

标签: imagemagick background-image background-color


【解决方案1】:

您的 JPEG 文件中不能有透明的背景颜色。 JPEG 文件格式不支持透明度。

如果需要透明背景,需要将JPEG转成

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

示例命令:

convert  your.jpg  -transparent white  your.png

【讨论】:

  • 我一定看过你的帖子,而不是你的实际命令;以为您在建议“手动转换”对不起混淆,我投票赞成您的回答。我对语法不是很熟悉,但我熟悉它的功能。
  • 这很好用……但如果图像中有任何白色,它也会将其转换为透明的。您可以通过手动将背景填充为另一种颜色然后使该颜色透明来解决此问题。我认为这不是 OP 正在寻找的,但我可能会使用非 CLI 工具,例如 remove.bg
【解决方案2】:

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

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

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

【讨论】:

  • 我的回答有什么问题? (您没有在问题中说明您需要某种程度的模糊性,也没有提供示例文件——因此无法猜测......)
  • 不需要将文件首先从JPEG转换为PNG,只需然后将白色转换为透明。我的命令在 one 中完成所有操作。
  • @KurtPfeifle 我知道他本可以帮助您改进您的答案,而不是回答他自己的;但是没有-fuzz 20%,它在这里不起作用;我认为你的答案可以通过模糊选项btw得到改善,我认为这样做绝对没有问题;他的回答也不完全正确,因为我可以直接从 jpg 到 png 结果;最后,这两个答案都带来了一个严重的问题;轮廓背景颜色(此处为黑色)变为透明;而且实际图像中的所有黑色也变得透明;到底是什么弄乱了我的形象... :>
【解决方案3】:

我刚刚发现了一件非常棒的东西!

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”

【讨论】:

    【解决方案4】:

    这是我没有魔法棒的解决方案(将magick替换为convert for im

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

    【讨论】:

    • 在 ubuntu imagemagick v8:6.7.7.10 - 错误convert.im6: non-conforming drawing primitive definition 'alpha' @ error/draw.c/DrawImage/3158.,知道吗?
    • 下面是 imagemagick 6 的正确命令: convert "./input.jpg" -fill none -draw 'color 1,1 floodfill' output.png
    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2015-04-25
    • 2019-01-03
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多