使用convert命令仅移除图片彩色像素外的白色背景,不擦除内部像素
解决方案
你之前使用的-transparent参数会匹配全图所有符合颜色阈值的像素,不管这些像素是否和背景区域连通,因此会误删除emoji内部的浅色像素,这和Photoshop魔棒工具默认勾选「连续」选项的处理逻辑完全不同。
推荐调整命令
基础方案(适用于图片四个角落均为白色背景的场景)
convert imoji.png -fuzz 5% -fill none -draw "matte 0,0 floodfill" result.png
参数说明:
-fuzz 5%:对应Photoshop魔棒的容差值,可根据实际效果在1%~10%区间调整,数值越大可兼容的背景色差越大-fill none:将选中的区域设置为透明-draw "matte 0,0 floodfill":从图片左上角(0,0)位置开始做连通区域泛洪填充,仅将和左上角像素颜色匹配、且互相连通的区域设为透明,完美复刻PS连续魔棒删背景的效果
兼容方案(适用于图片角落存在非白色像素的场景)
如果你的原图角落有非白色元素,会导致泛洪填充无法覆盖全部背景,可以先给图片加1像素白色边框再做处理,最后删掉边框即可:
convert imoji.png -bordercolor white -border 1 -fuzz 5% -fill none -draw "matte 0,0 floodfill" -shave 1x1 result.png
内容的提问来源于stack exchange,提问作者Technology EFX TV
相关产品推荐
相关产品推荐

