Цвета, представленные в шестнадцатеричном представлении можно преобразовать в 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”.

Добавить в закладки:

Оставить комментарий