我正在尝试在JavaScript中将十六进制颜色字符串转换为整数。颜色整数必须与VB6的格式相同。我认为字节的顺序不是正常的。例如:255是红色(#ff0000),16776960是Aqua(#00ffff)。我有一个反函数:(但评论中的某人告诉我它不正确)
function VBColorToHEX(i) {
var hex = (i & 0xFF).toString(16) +
((i >> 8) & 0xFF).toString(16) +
((i >> 16) & 0xFF).toString(16) +
((i >> 24) & 0xFF).toString(16);
hex += '000000';
hex = hex.substring(0, 6);
return "#" + hex;
}
但是我无法编写一个函数来返回我的初始值。
你能帮我吗?
编辑:
我通过填充每个单独的颜色来纠正了我的原始函数:
function VBColorToHEX(i) {
var r = (i & 0xFF).toString(16);
var g = ((i >> 8) & 0xFF).toString(16);
var b = ((i >> 16) & 0xFF).toString(16);
r = ('0' + r).slice(-2);
g = ('0' + g).slice(-2);
b = ('0' + b).slice(-2);
return "#" + r + g + b;
}
&H00BBGGRR&
。 - pawel