颜色
我想将颜色代码从rgb(样本输入是255,255,255
)转换为像[ 0xFF, 0xFF, 0xFF ]
这样的字节数组。
我怎么能正确地做到这一点?
我的第一次尝试是拆分RGB-Sections并将其解析为HEX Color并将其转换为整数:
this.addColor = function addColor(buffer, color) {
var parts = color.split(',');
var red = parts[0].toString(16);
var green = parts[1].toString(16);
var blue = parts[2].toString(16);
buffer.writeByte(parseInt("0x" + (red.length == 1 ? "0" + red : red, 16)));
buffer.writeByte(parseInt("0x" + (green.length == 1 ? "0" + green : green, 16)));
buffer.writeByte(parseInt("0x" + (blue.length == 1 ? "0" + blue : blue, 16)));
};
原始如下,但我想动态地制作它:
buffer.writeByte('f'); // These Char says "its a foreground color"
buffer.writeByte(0xFF); // Red
buffer.writeByte(0xFF); // Green
buffer.writeByte(0xFF); // Black
结果将输出为fÿÿÿ
!
不确定你在buffer
写的是什么,但如果你想简单地将decimal array
转换为hex string array
,
你可以试试:
arr.map(n=>'0x' + n.toString(16))
现在巡回阵列可以来自一个字符串"255,255,255"
,可以通过,
分割它,或者你需要它。如果要从字符串中拆分,则需要先解析。 (parseInt(n).toString(16)
)休息你需要根据你的需要实施。
示例代码:
var arr = [255, 230, 255];
var hexArr = arr.map(n=>'0x' + n.toString(16));
console.log(hexArr);