У меня есть значения цвета из приложения Flash, которые имеют формат ARGB (A - это значение альфа / прозрачности).
Мне нужно преобразовать это длинное десятичное число в RGB / шестнадцатеричное число в Javascript.
Знаете ли вы, как я могу извлечь отдельные значения R, G, B & A из длинного (8-значного) числа?
Вот моя функция, которая преобразует число в шестнадцатеричное, НО это недостаточно хорошо, потому что ему нужно преобразовать значения по отдельности (R, G, B, A):
function decimalToHex( num )
{
if (num == null || num == "undefined") { return "#FFFFFF"; }
var intNum = (parseInt(num,10)) & 0x00FFFFFF;
var strNum = intNum.toString(16);
while (strNum.length <6) { strNum = "0"+strNum; }
return "#"+strNum; //+intNum.toString(16);
}
function getR( num )
{
// eg value for num is 84545883
return (parseInt(num,10)) & 0x00FF0000; // does this correctly get the R value from a ARGB value?
}
function getG( num )
{
// eg value for num is 84545883
return (parseInt(num,10)) & 0x0000FF00; // does this correctly get the G value from a ARGB value?
}
function getB( num )
{
// eg value for num is 84545883
return (parseInt(num,10)) & 0x000000FF; // does this correctly get the B value from a ARGB value?
}