2012-09-25 3 views

ответ

6

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

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

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

+0

большое вам спасибо! – CodeChiller

+0

как вы меняете процесс в javascript? Начиная с шестнадцатеричного значения и работая в направлении значения argb? Некоторое время искал и не нашел решения :( – Jorrex

0

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

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

что означает «i»? – CodeChiller

+0

это работает только для альфы> 128 –

0

Вы можете проверить этот вопрос: How do I convert an integer to a javascript color?

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

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

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

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

Смежные вопросы