0

我们运行一个 mogrify 批处理作业,例如mogrify -path "WEBREADY\DONE" -layers merge -trim +repage -resize "1200x1200>" -define jpeg:extent=500kb -format jpg *.*

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

解决方案是

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

这可以在我上面的 1 个命令行命令中完成吗?(所以先找到灰色背景,改成白色)

示例 - 原始图像非常高分辨率

4

1 回答 1

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

在此处输入图像描述

现在您可以看到问题所在。背景不统一,它的颜色也出现在你的衬衫上。如果添加 some 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

在此处输入图像描述

于 2016-09-06T13:24:07.080 回答