如何使用ImageMagick查找图像的平均颜色?
如何获得图像平均颜色的RGB值,其中每个值为0-255?例如“255255” 我运行此命令来缩小图像,它返回带有alpha通道的“rgba”值,有时还会给出文本颜色名称:如何使用ImageMagick查找图像的平均颜色?,imagemagick,Imagemagick,如何获得图像平均颜色的RGB值,其中每个值为0-255?例如“255255” 我运行此命令来缩小图像,它返回带有alpha通道的“rgba”值,有时还会给出文本颜色名称: convert cat.png -resize 1x1\! -format "%[pixel:u]\n" info: 输出: rgba(155,51,127,0.266087) 您可以执行以下操作来解析出逗号分隔的RGB值。它也不会返回文本颜色名称 convert cat.png -resize 1x1\! \ -
convert cat.png -resize 1x1\! -format "%[pixel:u]\n" info:
输出:
rgba(155,51,127,0.266087)
您可以执行以下操作来解析出逗号分隔的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+我的答案有两个方面:
convert
看到的“平均”颜色convert
支持的特殊.txt
格式。此文本格式枚举图像的所有像素,首先给出其坐标($row,$column:
),然后给出不同格式的RGB或CMYK值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)
更容易使用特殊的输出格式
.txt
:-)基于这个答案,我想得到RGB三元组的十六进制等价物。我在命令行处理方面还不在行,所以这可能不是最好的,但希望它能节省一些时间:convert cat.png-scale 1x1\-格式“%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]信息:-sed's/,/\n/g'| xargs-L 1 printf“%x”
小心ImageMagick对gamma问题的错误默认处理;当缩小到1x1时,这可能特别明显。一个有好信息的页面:比公认的答案简单得多,也更详细。如果你喜欢小写,可以尝试convert p4.png-resize 1x1 txt:-|grep-Po“#[:xdigit:]{6}”
,并进一步将其导入tr A-F A-F
。