Główny problem z konwersją szesnastkowych wartości kolorów na RGB polega na tym, że nie ma relacji jeden do jednego między tymi dwoma formatami. Na przykład kolor #FF0000 jest reprezentowany w RGB jako 255, 0, 0, ale w systemie szesnastkowym byłby równy kolorowi #F0. Oznacza to, że dwa różne kolory mogą mieć tę samą wartość RGB, jeśli składają się z różnych ilości każdego składnika koloru.
"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; }
„użyj ściśle”;
Ten wiersz kodu włącza tryb ścisły, który umożliwia pisanie lepszego kodu JavaScript. W trybie ścisłym nie można używać niezadeklarowanych zmiennych. Ten wiersz kodu musi znajdować się na początku pliku JavaScript, aby działał tryb ścisły.
funkcja hexToRgb(hex) {
var wynik = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(szesnastkowo);
zwróć wynik? {
r: parseInt(wynik[1], 16),
g: parseInt(wynik[2], 16),
b: parseInt(wynik[3], 16)
} : zero;
}
Jest to funkcja, która konwertuje szesnastkową wartość koloru na wartość koloru RGB. Funkcja przyjmuje jeden parametr, którym jest szesnastkowa wartość koloru, którą chcesz przekonwertować. Funkcja używa wyrażenia regularnego w celu dopasowania wzorca szesnastkowej wartości koloru, a jeśli znajdzie dopasowanie, zwróci obiekt z wartościami koloru czerwonego, zielonego i niebieskiego. Jeśli nie znajdzie dopasowania, zwróci wartość null.
Konwersja między kolorami
Nie ma jednej uniwersalnej odpowiedzi na to pytanie, ponieważ najlepszy sposób konwersji kolorów między różnymi przestrzeniami kolorów może się różnić w zależności od konkretnych potrzeb aplikacji. Jednak kilka wskazówek, jak konwertować kolory między przestrzeniami kolorów w JavaScript można znaleźć poniżej.
Aby przekonwertować kolor z jednej przestrzeni kolorów na inną, możesz użyć funkcji rgb() i hsl(). Funkcje te przyjmują trzy argumenty: odpowiednio wartość czerwoną, zieloną i niebieską. Pierwszy argument określa podstawową przestrzeń kolorów (np. RGB), natomiast drugi i trzeci argumenty określają docelową przestrzeń kolorów (np. HSL).
Aby przekonwertować kolor z jednego formatu pikseli na inny, możesz użyć funkcji css(). Ta funkcja przyjmuje dwa argumenty: ciąg reprezentujący nazwę właściwości CSS (np. „kolor”) oraz liczbę reprezentującą pożądaną wartość tej właściwości (np. „50”).
Formaty kolorów
Istnieje kilka różnych formatów kolorów, których można używać w JavaScript.
RGB — czerwony, zielony, niebieski
HEX – #RRGGBB
HSL – Barwa, Nasycenie, Jasność