使用Node.js检索图像的真实颜色

时间:2018-04-23 17:12:48

标签: javascript node.js colors imagemagick graphicsmagick

我尝试过多个节点包用于检索颜色,它们都用于获取颜色,实际上颜色与图像颜色相似,但颜色有点暗,与实际的真实颜色不同。

我尝试过以下节点模块: jpeg-js pngjs 显色 imagecolors ,以及其他一些人。

但他们都有同样的问题,结果就是这样:

Real color of image compared with color extracted with code

编辑1:

我也尝试直接使用ImageMagick,但同样的问题:

convert test2.jpg -scale 1x1\! -format '%[pixel:u]' info:-
rgb(210,133,55) (This is #D28537)

编辑2:

我也尝试了一个在线工具:imagecolorpicker.com它让我#DB8A44几乎与#DB8A42完全一样,但是我想用我自己的代码来完成它我需要分析5,000张图像。

编辑3:

我刚试过PHP

$im = imagecreatefrompng("test.png");
$rgb = imagecolorat($im, 10, 15);
$colores = imagecolorsforindex($im, $rgb);

再次......错误的颜色。

1 个答案:

答案 0 :(得分:0)

你是如何创建原始test.png的?它有个人资料吗?您使用的是什么版本的Imagemagick?

以下在IM 6.9.9.40 Q16 Mac OSX中对我来说很好。

convert -size 100x100 xc:"#DB8A42" test.png

enter image description here

convert test.png -scale 1x1! txt:

# ImageMagick pixel enumeration: 1,1,65535,srgb
0,0: (56283,35466,16962)  #DB8A42  srgb(219,138,66)

或当前版本的Imagemagick:

convert test.png -scale 1x1! -format "%[hex:u.p{0,0}]" info:
DB8A42

这也有效:

convert test.png -scale 1x1! -format "%[pixel:u.p{0,0}]\n" info:
srgb(219,138,66)

convert xc:"srgb(219,138,66)" -depth 8 txt:
# ImageMagick pixel enumeration: 1,1,65535,srgb
0,0: (56283,35466,16962)  #DB8A42  srgb(219,138,66)

我的猜测是你有一个旧版本的Imagemagick,可能需要升级。