Решено: javascript hex към rgb

Последна актуализация: 09/11/2023

Основният проблем при преобразуването на шестнадесетични цветови стойности в 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 – нюанс, наситеност, лекота

Подобни публикации: