Kako računala stvaraju boje: RGB, HEX i binarne vrijednosti
#FF0000. #00FF00. #0000FF. Zapisi koje ste vjerojatno već vidjeli u dizajnerskim skicama ili kodu. Izgledaju kao šifra ili kod iz igre. Zapravo su nazivi boja.
Odozgo prema dolje: crvena, zelena, plava. To su nazivi koje računalo koristi za boje. U nastavku je objašnjenje odakle dolazi ovaj zapis.
RGB — tri slova koja tvore boje
Red, Green, Blue. Tri primarne boje svjetlosti. Miješanjem u različitim omjerima nastaju sve boje koje vidimo.
RGB vidimo svaki dan
Gdje god postoji zaslon, gotovo uvijek se koristi RGB.
- Monitor / TV — jedan piksel sastavljen je od tri točke: crvene, zelene i plave
- Zaslon pametnog telefona — ista struktura, manji pikseli
- Gaming tipkovnica LED — jedna tipka ima tri LED diode: R, G i B
- Osvjetljenje PC kućišta — RGB trake šalju upravo RGB signal
Dovoljno je povećati zaslon i vidjet ćete: crvena, zelena, plava. To je sve. Milijuni malih RGB točkica zajedno čine jednu sliku na zaslonu.
Boje nastaju miješanjem
Svaki RGB kanal ima intenzitet od 0 do 255.
RGB(255, 0, 0)— samo crvena na maksimumu → čista crvenaRGB(0, 255, 0)— samo zelena na maksimumu → čista zelenaRGB(255, 255, 0)— crvena + zelena → žutaRGB(0, 0, 0)— sve isključeno → crnaRGB(255, 255, 255)— sve na maksimumu → bijela
Može zvučati neočekivano da miješanjem crvene i zelene nastaje žuta, ali ovdje se radi o aditivnom miješanju svjetlosti. To je drugačije pravilo od miješanja boja u likovnoj nastavi (crvena + zelena = smeđa). Svjetlost se dodavanjem pojačava, a kad se sve kombinira, nastaje bijela.
Isprobajte sami pomicanjem triju klizača.
Osmoznamenkasti broj s desne strane je binarna reprezentacija tog kanala. Kad pomaknete klizač, taj broj se mijenja zajedno s njim. Sljedeća tema je kako se s nulama i jedinicama dobiva 256 vrijednosti.
Zašto baš od 0 do 255?
Računalo radi samo s 0 i 1. Jedna znamenka koja sadrži 0 ili 1 naziva se bit. Kako se bitovi dodaju, broj mogućih vrijednosti se udvostručuje za svaki bit.
8 bitova = 1 bajt (byte). Jedna boja ima tri RGB kanala, ukupno 3 bajta = 24 bita. 24 bita može prikazati oko 16,7 milijuna boja. Budući da je to dovoljno za razlikovanje ljudskim okom, 1 bajt po kanalu postao je standard.
Čitanje binarnih vrijednosti
Svaka pozicija ima fiksnu vrijednost. Slijeva nadesno: 128, 64, 32, 16, 8, 4, 2, 1 — potencije broja 2.
Zbrajanjem vrijednosti svih pozicija označenih s 1 dobiva se decimalni broj.
Zbog toga je maksimalna vrijednost 8 bita 255. To je točan razlog zašto jedan RGB kanal ima raspon 0–255.
HEX — isti broj, kraći zapis
RGB(255, 255, 255). To je 16 znakova. Previše za upisivanje u svaki redak CSS-a ili polje u dizajnerskom alatu. Zato je nastao kraći način pisanja istog broja.
Što je heksadecimalni sustav?
Heksadecimalni sustav jednim znakom prikazuje vrijednosti od 0 do 15. Ali naše uobičajene znamenke su samo od 0 do 9 — deset vrijednosti. Nedostajućih šest posuđuje se iz abecede.
Pravila su tri:
- 0–9 ostaju isti kao i obično
- od 10 počinje s A
- F je maksimalna jednoznamenkasta vrijednost (= 15)
Zašto baš heksadecimalni?
Binarne 4 znamenke (0000 ~ 1111) mogu prikazati točno 16 vrijednosti.
4 binarne znamenke = 1 heksadecimalni znak. Četiri znaka se skraćuju na jedan. Budući da je jedan RGB kanal 8 bita, to se točno prevodi u 2 heksadecimalna znaka.
Pretvaranje RGB u HEX
Pretvorimo RGB(255, 87, 51).
Zapis od 14 znakova sada je samo 7 znakova.
Prepoznavanje boje iz HEX zapisa
Obrnuto gledanje HEX-a daje naslutiti o kojoj je boji riječ.
#FF5733— R maksimalan (FF), G srednji (57), B nizak (33) → narančasta s jakom crvenom#3576E0— R nizak (35), G srednji (76), B jak (E0) → plava s malo ljubičaste#29A85A— R nizak (29), G jak (A8), B nizak (5A) → svježa zelena
Kad se gledanjem samo tri vrijednosti može razlikovati “narančasto” od “plavo”, dizajneri i programeri mogu komunicirati istim jezikom.
Sažetak u jednoj rečenici
- RGB — tri kanala (crvena, zelena, plava), svaki od 0 do 255
- Binarnih 8 bita — razlog zašto jedan kanal može prikazati 256 vrijednosti
- HEX — kraći zapis istih brojeva pomoću dva znaka
Kad se ta tri koncepta povežu, kod boja više nije tajna. Tri RGB broja izravno se pretvaraju u šest HEX znakova.
Sljedeći korak je prevesti te brojeve u jezik dizajnera. Zahtjeve poput „malo svjetlije”, „manje zasićeno” ili „isto na papiru” teško je riješiti samo s RGB-om i HEX-om. Kako to rješavaju HSL, CMYK i OKLCH, pročitajte u RGB nije dovoljan: notacije boja HSL, CMYK i OKLCH.