Основният проблем при преобразуването на шестнадесетични цветови стойности в RGB е, че няма съответствие едно към едно между двата формата. Например цветът #FF0000 е представен в RGB като 255, 0, 0, но в шестнадесетичен ще бъде равен на цвят #F0. Това означава, че два различни цвята могат да имат една и съща RGB стойност, ако са съставени от различни количества от всеки цветен компонент.
"use strict";
function hexToRgb(hex) {
var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
„използвайте стриктно“;
Този ред код позволява строг режим, което е начин за писане на по-добър JavaScript. В строг режим не можете да използвате недекларирани променливи. Този ред от код трябва да е в горната част на вашия JavaScript файл, за да работи строгият режим.
функция hexToRgb(hex) {
променлив резултат = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
върнат резултат? {
r: parseInt(резултат[1], 16),
g: parseInt(резултат[2], 16),
b: parseInt(резултат[3], 16)
} : нула;
}
Това е функция, която преобразува шестнадесетична цветова стойност в RGB цветова стойност. Функцията приема един параметър, който е шестнадесетичната цветова стойност, която искате да конвертирате. Функцията използва регулярен израз, за да съпостави шаблона на шестнадесетична цветова стойност и ако намери съвпадение, ще върне обект с червени, зелени и сини стойности. Ако не намери съвпадение, ще върне нула.
Преобразуване между цветовете
Няма универсален отговор на този въпрос, тъй като най-добрият начин за конвертиране на цветове между различни цветови пространства може да варира в зависимост от специфичните нужди на вашето приложение. Въпреки това, някои съвети как да конвертирате цветове между цветови пространства в JavaScript могат да бъдат намерени по-долу.
За да преобразувате цвят от едно цветово пространство в друго, можете да използвате функциите rgb() и hsl(). Тези функции приемат три аргумента: съответно червена, зелена и синя стойност. Първият аргумент указва основното цветово пространство (напр. RGB), докато вторият и третият аргумент указват целевото цветово пространство (напр. HSL).
За да конвертирате цвят от един пикселен формат в друг, можете да използвате функцията css(). Тази функция приема два аргумента: низ, представляващ името на CSS свойството (напр. „цвят“) и число, представляващо желаната стойност за това свойство (напр. „50“).
Цветни формати
Има няколко различни цветови формата, които можете да използвате в JavaScript.
RGB – червено, зелено, синьо
HEX – #RRGGBB
HSL – нюанс, наситеност, лекота