Javascript 将灰色60转换为rgb | Imagemagick

Javascript 将灰色60转换为rgb | Imagemagick,javascript,colors,hex,imagemagick,rgb,Javascript,Colors,Hex,Imagemagick,Rgb,我在js中使用Imagemagick,得到像素的颜色和他的坐标,如下所示: im.identify(['-format', '%[pixel:p{' + values.coordinate + '}]', values.file], function(err, color) { console.log('color = ', color); }); 它可以工作,但有时我会得到像“灰色60”或“灰色40”之类的颜色。 是否有方法请求Imagemagick以十六进制或rgb格式返回数据?或者

我在js中使用Imagemagick,得到像素的颜色和他的坐标,如下所示:

im.identify(['-format', '%[pixel:p{' + values.coordinate + '}]', values.file], function(err, color) { 
  console.log('color = ', color);
});
它可以工作,但有时我会得到像“灰色60”或“灰色40”之类的颜色。
是否有方法请求Imagemagick以十六进制或rgb格式返回数据?或者有办法将此格式转换为十六进制或rgb?

在IM 6.9.8-9和7.0.5.10中,添加了对%[hex:]属性的支持,类似于%[pixel:],但返回十六进制值。因此,这应该在命令行模式下工作

convert xc:red -depth 8 -format "%[hex:u.p{0,0}]\n" info:
FF0000
或添加#符号:

对于在此之前的IM版本(至少对于unix语法):

因此,如果您希望在坐标处使用十六进制颜色,请执行以下操作:

convert rose: -depth 8 -format "\#%[hex:u.p{20,20}]\n" info:
#A93B2A


在7.0.5版本的某个时候,IM中添加了一项功能,允许您访问像素的十六进制值。它看起来像这样。。。“%[hex:u.p{W,H}]”。它在输出中不包含“#”,因此如果需要,您必须构造字符串来包含它。
convert xc:red -depth 8 txt: | tail -n +2 | sed -n 's/^.*\(\#.*\) .*$/\1/p'
#FF0000 
convert rose: -depth 8 -format "\#%[hex:u.p{20,20}]\n" info:
#A93B2A
convert rose:[1x1+20+20] txt: | tail -n +2 | sed -n 's/^.*\(\#.*\) .*$/\1/p'
#A93B2A