如何使用ImageMagick查找图像的平均颜色?

时间:2014-08-25 14:36:16

标签: imagemagick

如何获取图像平均颜色的RGB值,其中每个值为0-255?例如" 255,255,255"

我运行此命令缩小图像并返回' rgba'使用Alpha通道的值,有时它会给出文本颜色名称:

convert cat.png -resize 1x1\! -format "%[pixel:u]\n" info:

输出:

rgba(155,51,127,0.266087)

2 个答案:

答案 0 :(得分:16)

我的回答有两个方面:

  1. 将原始图像调整为1像素图像。然后这个像素将具有"平均值" ImageMagick&{39} convert看到的颜色。
  2. 将结果输出为.txt支持的特殊convert格式。此文本格式枚举图像的所有像素,首先给出其坐标($row,$column:),然后给出不同格式的RGB或CMYK值。
  3. 这是一个涵盖两个方面的命令:

    convert cat.png -resize 1x1 out.txt
    cat out.txt
    

    要直接在终端窗口中获​​取输出,您可以使用:

    convert cat.png -resize 1x1 txt:-
    

    示例输出:

    convert p4.png -resize 1x1 txt:-
      # ImageMagick pixel enumeration: 1,1,255,srgb
      0,0: (189,185,184)  #BDB9B8  srgb(189,185,184)
    

答案 1 :(得分:7)

您可以执行以下操作以仅解析逗号分隔的RGB值。它也不会返回文本颜色名称。

convert cat.png -resize 1x1\! \
    -format "%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]" info:-

输出格式应如下所示:

155,51,127

这应该适用于ImageMagick 6.3.9.1 +