将浮点值转换为灰度十六进制颜色值

Ace*_*Ace 3 html javascript floating-point colors converter

这个问题快速而简单.

我有一个2d浮点数组(0,0000000到1,0000000),我想将这些数字转换为颜色值(#000000到#ffffff).

请注意,我所说的只是灰度值.

0 =黑色| ...... | 0.5 =中灰色 ...... | 1 =白色

有没有人知道如何用javascript做到这一点?谢谢.

chr*_*mod 10

十六进制的灰度值是具有对称分布的灰度值或红色,绿色和蓝色,例如:#111111,#5B5B5B,#A2A2A2.

要将十进制数转换为十六进制数,您可以使用:

var number = 42;
var hex = Number(parseInt( number , 10)).toString(16);
hex // => "2a"
Run Code Online (Sandbox Code Playgroud)

把它用于功能:

function dec2hex(dec) {
    return Number(parseInt( dec , 10)).toString(16);
}
Run Code Online (Sandbox Code Playgroud)

所以你的浮点数可以转换成十六进制:

var percentage = 0.4;
var color_part_dec = float * 255;
var color_part_hex = dec2hex( color_part_dec );
var color = "#" + color_part_hex + color_part_hex + color_part_hex;
color // => "#666666"
Run Code Online (Sandbox Code Playgroud)

所以你的功能看起来像这样:

function float2color( percentage ) {
    var color_part_dec = 255 * percentage;
    var color_part_hex = Number(parseInt( color_part_dec , 10)).toString(16);
    return "#" + color_part_hex + color_part_hex + color_part_hex;
}
Run Code Online (Sandbox Code Playgroud)