gpt4 book ai didi

javascript - 在javascript中将十六进制颜色转换为整数

转载 作者:行者123 更新时间:2023-11-30 09:52:53 30 4
gpt4 key购买 nike

我正在尝试将十六进制颜色字符串转换为 javascript 中的 int。

color int 必须与 VB6 格式相同。我认为字节的顺序不正常。例如:255 是红色 (#ff0000),16776960 是浅绿色 (#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;
}

最佳答案

这是您原始函数的工作版本,我认为您会更了解它的实际工作方式。

function VBColorToHEX(i) {
var bbggrr = ("000000" + i.toString(16)).slice(-6);
var rrggbb = bbggrr.substr(4, 2) + bbggrr.substr(2, 2) + bbggrr.substr(0, 2);
return "#" + rrggbb;
}

然后,反过来,这样做:

function HEXToVBColor(rrggbb) {
var bbggrr = rrggbb.substr(4, 2) + rrggbb.substr(2, 2) + rrggbb.substr(0, 2);
return parseInt(bbggrr, 16);
}

关于javascript - 在javascript中将十六进制颜色转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35466604/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com