将RGBA转换为十六进制或将ARGB转换为十六进制

时间:2011-11-01 02:36:40

标签: javascript html flash color-scheme

我正在尝试将Flash应用程序中的十进制颜色代码转换为HTML显示的十六进制颜色代码

我有8位数的这些数字,但我不确定它们是ARGB还是RGBA。有没有办法从颜色代码本身中解决这个问题?

我有一个javascript函数,可以将十进制数转换为十六进制数,但我没有补偿A值(或删除它)。你能帮我修改我的函数来从RGB十进制代码中提取/删除A值吗?

function decimalToHex( num )
{
  if (num == null || num == "undefined") { return "0xFFFFFF"; }

  var intNum = (parseInt(num,10)) & 8;  // does this remove the most significant 8 bits?
  return intNum.toString(16);
}

1 个答案:

答案 0 :(得分:6)

如果alpha值在最高字节中,则按位AND与0x00FFFFFF删除。所以:

var intNum = (parseInt(num,10)) & 0x00FFFFFF;

或者,如果alpha值在最低字节中,按位AND与0xFFFFFF00,则向右移8:

var intNum = (parseInt(num,10) & 0xFFFFFF00) >> 8;