如何判断图像是否包含特定颜色?

Phu*_*icx 6 colors images

是否有命令行工具可以告诉我图像是否包含特定颜色?例如,如果它包含#ff0000

Rom*_*nov 4

您可以通过以下命令使用Imagemagick

convert  image.ext -colorspace RGB -format %c  -depth 8  histogram:info:-|grep -i '#ff000'
Run Code Online (Sandbox Code Playgroud)

convert程序会将图像转换为 8 位 RGB(CMYK 图像将给出虚假结果)并构建直方图,输出如下:

...
       422: (  0,255,255) #00FFFF cyan
       126: ( 46,139, 87) #2E8B57 SeaGreen
...
Run Code Online (Sandbox Code Playgroud)

并且您需要过滤所需的颜色。

  • @roaima,每通道 8 位:D (3认同)
  • 尽管根据测试,图片中可能有第 4 个 8 位值(alpha 通道),因此最好使用 `grep -i '#ff0000'` 来不匹配最后一部分。除了图标之类的图片外,它通常是 FF(不透明)。 (2认同)