javascript - 将gray60 转换为rgb |图像魔法

标签 javascript colors hex imagemagick rgb

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

im.identify(['-format', '%[pixel:p{' + values.coordinate + '}]', values.file], function(err, color) { 
  console.log('color = ', color);
});

它有效,但有时我会得到像“grey60”或“grey40”或类似的颜色。 有没有办法要求 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

或添加#符号:

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

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

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 

关于javascript - 将gray60 转换为rgb |图像魔法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45735358/

相关文章:

javascript - 当值超过 100 时,如何使用 AngularJS 初始化输入[范围]的值

javascript - 停止将某个类应用于事件目标的父级

opencv - opencv中颜色的阈值

c++ - 二进制字符串到十六进制 C++

javascript - 如何在 ng-repeat angularjs 中显示 Highcharts

javascript - 您将如何测试 Scala.js 库的 JVM 和 JS 实现的等效性?

python - 是否可以为列表框小部件中的特定项目着色?

css - 如何使用正在使用的过渡元素更改下划线颜色? (CSS)

javascript - 循环十六进制值的更合适的方法

java - 如何在 Java 中将字符串转换为十六进制字节