Как я могу конвертировать ARGB в HEX в JavaScript?

Я хочу конвертировать цвета ARGB в CSS-совместимый гекс

например:

-1 следует преобразовать в #FFFFFF

или же

-16777216 в #000000

Как я могу сделать это в JavaScript?

3 ответа

Решение

Это отбрасывает любой альфа-компонент

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

Ваши цвета подписаны 32-битными, а полная альфа (0xFF) делает числа отрицательными. Этот код работает даже для беззнаковых чисел.

Вы можете проверить этот вопрос: Как я могу преобразовать целое число в цвет JavaScript?

В моем ответе на этот вопрос было грубо предположить, что, если вы хотите использовать библиотеку, а не кодировать ее самостоятельно, библиотека javascript pusher.color поддерживает преобразования цвета целое в HTML:

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

Вот JSFiddle, если вы хотите попробовать вышеизложенное.

Кроме того, позвольте мне добавить отказ от ответственности, который я написал библиотеку, упомянутую выше.

Я предполагаю, что вы хотите что-то вроде этого:

function convertToColorString (argb){ 
   return '#'+ ('000000' + (argb+16777216).toString(16)).slice(-6); 
}
Другие вопросы по тегам