6

我想将 ARGB 颜色转换为与 CSS 兼容的十六进制

例如:

-1应转换为#FFFFFF

或者

-16777216#000000

我怎样才能在 JavaScript 中做到这一点?

4

3 回答 3

9

这将丢弃任何 alpha 分量

function argbToRGB(color) {
    return '#'+ ('000000' + (color & 0xFFFFFF).toString(16)).slice(-6);
}

您的颜色是 32 位有符号的,完整的 alpha (0xFF) 使数字变为负数。此代码甚至适用于无符号数字。

于 2012-09-25T09:24:14.940 回答
0

我假设你想要这样的东西:

function convertToColorString (argb){ 
   return '#'+ ('000000' + (argb+16777216).toString(16)).slice(-6); 
}
于 2012-09-25T09:19:42.927 回答
0

您可能想检查这个问题:如何将整数转换为 javascript 颜色?

我对这个问题的回答大致是建议,如果你想使用一个库而不是自己编码,pusher.color Javascript 库支持整数到 HTML 颜色转换:

// Will set c to "#695083"
var c = pusher.color('packed_argb', -9875325).hex6();

如果您想尝试上述方法,这里是一个JSFiddle 。

另外,让我添加我编写上述库的免责声明。

于 2012-09-25T16:42:55.227 回答