如何在JavaScript中将ARGB转换为十六进制?

如何在JavaScript中将ARGB转换为十六进制?,javascript,colors,hex,argb,Javascript,Colors,Hex,Argb,我想把ARGB颜色转换成CSS兼容的十六进制 例如: -1应转换为#FFFFFF 或 -16777216至#000000 我怎样才能在JavaScript中做到这一点呢?我假设您想要这样的东西: function convertToColorString (argb){ return '#'+ ('000000' + (argb+16777216).toString(16)).slice(-6); } 这将丢弃任何alpha组件 function argbToRGB(color) {

我想把ARGB颜色转换成CSS兼容的十六进制

例如:

-1
应转换为
#FFFFFF

-16777216
#000000


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

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

function convertToColorString (argb){ 
   return '#'+ ('000000' + (argb+16777216).toString(16)).slice(-6); 
}

这将丢弃任何alpha组件

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

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

您可能需要检查此问题:

我对这个问题的回答大致是,如果您想使用一个库而不是自己编码它,则支持整数到HTML颜色转换:

// Will set c to "#695083"
var c = pusher.color('packed_argb', -9875325).hex6();
如果你想尝试以上方法,这里有一个简单的例子


另外,让我添加我在上面提到的库中编写的免责声明。

如何在javascript中反转该过程?从十六进制值开始,朝着argb值前进?已经寻找了一段时间,没有找到任何解决方案:(@Jorrex不确定您是否还在寻找,但我也需要它,并在这里找到了它:感谢这个答案: