Mogrify / ImageMagick 将 jpeg 背景从灰色更改为白色
Posted
技术标签:
【中文标题】Mogrify / ImageMagick 将 jpeg 背景从灰色更改为白色【英文标题】:Mogrify / ImageMagick change jpeg background from grey to white 【发布时间】:2016-09-05 18:22:52 【问题描述】:我们运行一个 mogrify 批处理作业,例如 mogrify -path "WEBREADY\DONE" -layers merge -trim +repage -resize "1200x1200>" -define jpeg:extent=500kb -format jpg *.*
这适用于具有白色背景的图像。但是最近我们看到了 2% 的错误率并发现了错误。 Mogrify 只在网络上按预期修剪图像被白色包围,所以这看起来很傻,角落里有灰色。
解决办法是
检测非白色背景。在这种情况下-仅-不要修剪 或者检测左上角的背景颜色(JPG)并将其设置为全白背景。这可以在我上面的 1 个命令行命令中完成吗? (所以先找到灰色背景,改成白色)
【问题讨论】:
请显示一个带有灰色边角的愚蠢图像,以便我们了解您的意思。我怀疑答案是在命令开头附近添加-fuzz 35%
或类似名称,但让我们看看。
【参考方案1】:
你可以像这样获取左上角像素的颜色:
convert shirt.jpg -crop 1x1+0+0 txt:
# ImageMagick pixel enumeration: 1,1,65535,srgb
0,0: (57311,57311,57311) #DFDFDF srgb(223,223,223)
所以,它是#DFDFDF。
如果你现在尝试用黄色替换那个阴影(我知道你想要白色,但你在这里看不到):
convert shirt.jpg -fill yellow -opaque "#DFDFDF" result.png
您现在可以看到问题所在。背景不统一,它的颜色也出现在你的衬衫上。如果你添加一些fuzz
,它会更明显:
convert shirt.jpg -fill yellow -fuzz 10% -opaque "#DFDFDF" result.png
即使你尝试从左上角填充填充,你仍然必须希望你的衬衫边缘没有与那个角落相似的像素:
convert shirt.jpg -fill yellow -fuzz 5% -floodfill +0+0 "#dfdfdf" result.png
【讨论】:
嗯。所以一个很好的答案!!!但只是不可能。也许您可以根据我的问题为具有扎实背景问题的未来读者提供 1 个完整的命令行,我可以接受。太好了!!以上是关于Mogrify / ImageMagick 将 jpeg 背景从灰色更改为白色的主要内容,如果未能解决你的问题,请参考以下文章
ImageMagick 错误:'mogrify:无法打开图像问题'
无需重新压缩的 ImageMagick/Mogrify 条是不是可能?