Glavni problem sa pretvaranjem heksadecimalnih vrijednosti boja u RGB je taj što ne postoji korespondencija jedan-na-jedan između dva formata. Na primjer, boja #FF0000 je predstavljena u RGB-u kao 255, 0, 0, ali u heksadecimalnoj bi bila jednaka boji #F0. To znači da dvije različite boje mogu imati istu RGB vrijednost ako se sastoje od različitih količina svake komponente boje.
"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; }
„koristi strogo”;
Ova linija koda omogućava strogi način rada, što je način da se napiše bolji JavaScript. U strogom načinu rada, ne možete koristiti nedeklarirane varijable. Ova linija koda mora biti na vrhu vaše JavaScript datoteke da bi strogi način rada funkcionirao.
funkcija hexToRgb(hex) {
var rezultat = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
vratiti rezultat? {
r: parseInt(rezultat[1], 16),
g: parseInt(rezultat[2], 16),
b: parseInt(rezultat[3], 16)
} : null;
}
Ovo je funkcija koja pretvara heksadecimalnu vrijednost boje u RGB vrijednost boje. Funkcija uzima jedan parametar, a to je heksadecimalna vrijednost boje koju želite pretvoriti. Funkcija koristi regularni izraz za podudaranje sa uzorkom heksadecimalne vrijednosti boje, a ako pronađe podudaranje, vratit će objekt s crvenom, zelenom i plavom vrijednosti. Ako ne pronađe podudaranje, vratit će null.
Konverzija između boja
Ne postoji jednoznačan odgovor na ovo pitanje, jer najbolji način za pretvaranje boja između različitih prostora boja može varirati ovisno o specifičnim potrebama vaše aplikacije. Međutim, u nastavku možete pronaći neke savjete o tome kako pretvoriti boje između prostora boja u JavaScriptu.
Da biste pretvorili boju iz jednog prostora boja u drugi, možete koristiti funkcije rgb() i hsl(). Ove funkcije uzimaju tri argumenta: crvenu, zelenu i plavu vrijednost, redom. Prvi argument specificira osnovni prostor boja (npr. RGB), dok drugi i treći argument specificiraju ciljni prostor boja (npr. HSL).
Da biste pretvorili boju iz jednog formata piksela u drugi, možete koristiti funkciju css(). Ova funkcija uzima dva argumenta: string koji predstavlja ime CSS svojstva (npr. “color”) i broj koji predstavlja željenu vrijednost za to svojstvo (npr. “50”).
Formati boja
Postoji nekoliko različitih formata boja koje možete koristiti u JavaScriptu.
RGB – crvena, zelena, plava
HEX – #RRGGBB
HSL – Hue, Saturation, Lightness