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 条是不是可能?

找不到 imageMagick mogrify 模块

ImageMagick 和 mogrify 裁剪

ImageMagick:如何在没有背景的情况下使用 mogrify 按比例调整大小

ImageMagick Mogrify:带水印的批处理