Mogrify / ImageMagick将jpeg背景从灰色变为白色

时间:2016-09-05 18:22:53

标签: image imagemagick mogrify

我们运行mogrify批处理作业,如Entry[] entries

这适用于具有白色背景的图像。但最近我们看到了2%的错误率并发现了错误。 Mogrify裁剪只能在网络上预期,图像被白色包围,所以这看起来非常愚蠢,角落里有灰色。

解决方案是

  • 检测非白色背景。在这种情况下 - 只是 - 不修剪
  • 或者在左上角检测背景颜色(它是JPG),并将forst设置为全白背景。

这可以在我上面的1命令中为命令行完成吗? (因此首先找到灰色背景并将其更改为白色)

example - original images is very highres

1 个答案:

答案 0 :(得分: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

enter image description here

现在您可以看到问题所在。背景不均匀,其颜色也出现在你的衬衫上。如果您添加一些fuzz,则会更加明显:

convert shirt.jpg -fill yellow -fuzz 10% -opaque "#DFDFDF" result.png

enter image description here

即使您尝试从左上角填充洪水,您仍然希望衬衫边缘没有与该角落类似的像素:

convert shirt.jpg -fill yellow -fuzz 5% -floodfill +0+0 "#dfdfdf" result.png

enter image description here