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



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

例如:

-1应转换为#FFFFFF

-16777216#000000

如何在 JavaScript 中做到这一点?

这将丢弃任何 alpha 组件

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

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

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

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

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

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

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

尝试上面的方法,这里有一个JSFiddle

另外,让我补充一下我写了上面提到的库的免责声明。

最新更新