Jak počítač vytváří barvy: RGB, HEX a dvojková soustava
#FF0000. #00FF00. #0000FF. Zápis, na který jste v designovém podkladu nebo v kódu narazili nejspíš již mnohokrát. Může to vypadat jako šifra nebo herní kód. Ve skutečnosti jde o název barvy.
Shora dolů: červená, zelená, modrá. Takto počítač pojmenovává barvy. Pojďme si vysvětlit, odkud tento zápis pochází.
RGB — tři písmena, ze kterých vznikají barvy
Red, Green, Blue. Tři základní barvy světla. Jejich vzájemným mícháním vznikají všechny barvy, které vidíme.
RGB vidíme každý den
Všude, kde je obrazovka, je téměř jistě i RGB.
- Monitor / televize — každý pixel tvoří tři body: červený, zelený a modrý
- Displej smartphonu — stejná struktura, jen menší pixely
- LED podsvícení herní klávesnice — tři LED diody R·G·B pod každou klávesou
- Osvětlení PC skříně — RGB pásek přenáší právě RGB signál
Stačí dostatečně přiblížit obrazovku a uvidíte to sami. Červená, zelená, modrá. Nic víc. Miliony drobných RGB bodů dohromady tvoří jeden celistvý obraz.
Barvy vznikají mícháním
Každý ze tří kanálů RGB má intenzitu od 0 do 255.
RGB(255, 0, 0)— pouze červená na maximum → čistá červenáRGB(0, 255, 0)— pouze zelená na maximum → čistá zelenáRGB(255, 255, 0)— červená + zelená → žlutáRGB(0, 0, 0)— vše vypnuto → černáRGB(255, 255, 255)— vše na maximum → bílá
To, že červená a zelená dávají žlutou, může být neintuitivní — jde však o aditivní míchání světla. Platí zde jiná pravidla než při míchání barev v hodinách výtvarné výchovy (červená + zelená = hnědá). Světlo se sčítá: čím více přidáte, tím je výsledek světlejší; vše dohromady dá bílou.
Vyzkoušejte si to sami pomocí tří posuvníků níže.
Osmimístné číslo na pravém konci je binární zápis daného kanálu. Pohybem posuvníku se tato hodnota mění. Jak lze pomocí 0 a 1 vyjádřit 256 různých hodnot — to je téma další části.
Proč právě 0 až 255?
Počítač pracuje výhradně s 0 a 1. Jedno místo, které obsahuje hodnotu 0 nebo 1, se nazývá bit. S každým přidaným bitem se počet možných hodnot zdvojnásobí.
8 bitů = 1 bajt (byte). Jedna barva má tři kanály RGB, tedy celkem 3 bajty = 24 bitů. 24 bitů dokáže vyjádřit přibližně 16,7 milionu barev — dostatečně jemná stupnice pro lidské oko, a proto se 1 bajt stal standardem pro jeden kanál.
Binární zápis: čtěte sami
Každá pozice má pevnou hodnotu. Zleva doprava: 128, 64, 32, 16, 8, 4, 2, 1 — mocniny čísla 2.
Součet hodnot na pozicích označených 1 dává výsledné desetinné číslo.
Maximální hodnota 8 bitů je tedy 255. To je přesný důvod, proč má jeden kanál RGB rozsah 0–255.
HEX — stejná čísla, kratší zápis
RGB(255, 255, 255). To je 16 znaků. Do jednoho řádku CSS nebo do políčka v designovém nástroji se to pokaždé píše zdlouhavě. Proto vznikl způsob, jak stejná čísla zapsat kratší formou.
Co je šestnáctková soustava?
Šestnáctková (hexadecimální) soustava vyjadřuje hodnoty 0–15 jediným znakem. Jenže obvyklé číslice jsou pouze 0–9, tedy 10 znaků. Chybějících šest se vypůjčuje z abecedy.
Pravidla jsou tři:
- 0–9 zůstávají beze změny
- od 10 začínáme písmeny, první je A
- F je maximální jednoznakový zápis (= 15)
Proč právě šestnáctková soustava?
Čtyřmístné binární číslo (0000 až 1111) vyjadřuje přesně 16 různých hodnot.
4 binární číslice = 1 hexadecimální číslice. Čtyři znaky se shrnou do jednoho. Protože jeden kanál RGB má 8 bitů, přesně odpovídá dvěma hexadecimálním znakům.
Jak převést RGB na HEX
Převedeme RGB(255, 87, 51).
Původních 14 znaků se zkrátí na 7 znaků.
Jak odhadnout barvu podle HEX
Z HEX kódu lze přibližně poznat, o jakou barvu jde.
#FF5733— R maximum (FF), G polovina (57), B nízká (33) → oranžová s dominantní červenou#3576E0— R nízká (35), G střední (76), B silná (E0) → modrá s lehkým nádechem fialové#29A85A— R nízká (29), G silná (A8), B nízká (5A) → svěží zelená
Jakmile dokážete z tří dvojic určit, zda jde o „oranžovou, nebo modrou”, designér a vývojář si skutečně rozumějí stejnou řečí.
Shrnutí jednou větou
- RGB — tři kanály (červená, zelená, modrá), každý 0–255
- Binární 8 bitů — základ 256 hodnot jednoho kanálu
- HEX — zkrácený zápis stejných čísel na dva znaky
Jakmile tyto tři koncepty propojíte, kód barvy přestane být záhadný zápis. Tři čísla RGB jsou přesně šest znaků HEX.
Dalším krokem je převést tato čísla do jazyka designéra. Požadavky jako „o něco světlejší”, „méně nasycené” nebo „totéž na papíře” se pomocí RGB a HEX řeší jen velmi těžko. Jak to řeší HSL, CMYK a OKLCH, se dočtete v RGB nestačí: barevné notace HSL, CMYK a OKLCH.