我有一张以.jpg格式
保存的图片,背景是白色
。我想在Imagemagick
中将白色背景变成透明。我尝试了很多方法,但是仍然无法去除白色背景。请问有谁可以帮我解决这个问题。
我有一张以.jpg格式
保存的图片,背景是白色
。我想在Imagemagick
中将白色背景变成透明。我尝试了很多方法,但是仍然无法去除白色背景。请问有谁可以帮我解决这个问题。
在JPEG图像中,无法使用透明背景颜色。JPEG文件格式不支持透明度。
如果需要透明的背景,您需要将JPEG转换为
示例命令:
convert your.jpg -transparent white your.png
首先,您需要将图像格式从.jpg
转换为.png
格式,因为JPEG不支持透明度。然后使用以下命令:
convert image1.png -fuzz 20% -transparent white result.png
-fuzz
选项允许将指定百分比偏离纯白色的颜色也转换为透明。例如,当您的图像包含噪点或细微渐变时,这非常有用。
-fuzz 20%
在这里无法工作;我认为你的答案可以通过模糊选项进行改进,顺便说一下,我完全没有问题;此外,他的答案并不完全正确,因为我可以直接从 jpg 转换为 png 结果;最后,两个答案都带来了一个严重的问题;轮廓背景颜色(这里是黑色)变成透明;但实际上图像内部所有的黑色也变成了透明;这实际上搞乱了我的图像... :> - Aquarius Powermagicwand 1,1 -t 20 -f image -r outside -m overlay -o 0 image.jpg imgOutput.png
1,1
是一个普通的猜测器,表示所有轮廓都是背景。自动获取并删除背景:
bg=$(convert input.png -format "%[pixel:p{0,0}]" info:)
convert input.png -fuzz 20% -transparent "$bg" output.png
这是我的解决方案,没有使用魔法棒(对于im < 7.0,请将magick
替换为convert
):
magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png
convert.im6: non-conforming drawing primitive definition 'alpha' @ error/draw.c/DrawImage/3158.
,有什么想法吗? - Aquarius Power