我想将 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。
另外,让我补充一下我写了上面提到的库的免责声明。