Цвета, представленные в шестнадцатеричном представлении можно преобразовать в RGB при помощи следующих функций:
function cutHex(h) {return (h.charAt(0)=="#") ? h.substring(1,7):h}
function HexToR(h) {return parseInt((cutHex(h)).substring(0,2),16)}
function HexToG(h) {return parseInt((cutHex(h)).substring(2,4),16)}
function HexToB(h) {return parseInt((cutHex(h)).substring(4,6),16)}
// *******
// Пример
R = HexToR("#FFFFFF");
G = HexToG("#FFFFFF");
B = HexToB("#FFFFFF");
В этом скрипте мы получаем отдельно 3 составляющих цвета. Далее идет функция с проверкой исходных данных, объединяющая все 3 функции в одну, и которая возвращает объект, содержащий три свойства red, green, blue:
function HexToRGB(hex_clr){
if(!/^\#?[\da-f]{6}$/i.test(hex_clr))
return null;
var color = (hex_clr.charAt(0)=="#") ? hex_clr.substring(1):hex_clr;
return {
"red" : parseInt(color.substring(0,2),16),
"green" : parseInt(color.substring(2,4),16),
"blue" : parseInt(color.substring(4,6),16)
}
}
// *******
// Пример
var clr = HexToRGB("#fc6e30");
if (clr){
alert("Red: "+clr.red + " Green: " + clr.green + " Blue: " + clr.blue);
}
Функция может получать цвет в виде “#ffffff” или “ffffff”.
