Bezpečné barvy

Netscape Color Cube, jinak také Netscape color palette, bezpečné barvy, webové barvy, je podmnožina barevného prostoru RGB a obsahuje z něj právě takové barvy, u kterých se lze spolehnout na věrné zobrazení na všech HW zobrazovacích zařízeních, stejně jako i na jejich generování v SW systémech. Za bezpečné se tyto barvy považují proto, že je zařízení generují a zobrazují bez ditheringu, bez namíchávání barevného tónu prokladáním puntíků nepřesných odstínů, které by pak v průměru měly požadovanou barvu tvořit.

Motivace a historie

Barvy používané pro webdesign se obvykle specifikují aditivně v RGB. Zpočátku omezená barevná hloubka většiny prvotního video-hardwaru vedla k omezení barevné palety na 216 RGB, definováno jako Netscape Color Cube. Jejich počet 216 vyšel jako výsledek rovnoměrného pokrytí celého objemu gamutu. Bezpečná barevná paleta pro web se tedy skládá z 216 kombinací červené, zelenémodré, kde se ve všech třech osách gamutu dělí jasový rozsah základních barev na 5 stejných intervalů. Tak je na osách definováno 6 bodů, 6 jasových úrovní každé barvy:

úrovně jasů barev pro Bezpečné webové barvy
%hexadekadickyhexa redukovanědekadicky redukovaněpoznámka
100 %0xFF2550xF15maximální jas, u všech pro bílou
80 %0xCC2040xC12když u všech stejně, vychází šedá
60 %0x991530x99když u všech stejně, vychází šedá
40 %0x661020x66když u všech stejně, vychází šedá
20 %0x33510x33když u všech stejně, vychází šedá
0 %0x0000x00zhasnuto, u všech pro černou

Pro každou barvu pak platí, že má jednu z pouhých šesti možných hodnot, což pro 3-barevný gamut dává 216 odstínů (6³ = 216).

Redukovaný zápis

Tento RGB barevný model byl formálně přijat jako internetový standard v HTML ve verzi 3.2.

Při zápisu v CSS se pak obecně v RGB (při 8bitové barevné hloubce) používá zápis libovolné barvy pomocí 6 hexa-cifer, v zápise #RRGGBB. Například červenou lze kromě vyhrazeného klíčového slova red zapsat také číselnou hodnotou #FF0000.[1]

Výhodou bezpečných barev je pak mj. to, že

  • je lze zapsat redukovaně, pomocí pouhých tří cifer.
  • A navíc ještě s omezením, že se nepoužívá všech 16 možných číselných hodnot, ale jen násobky tří,
    • což zrovna pro 16-kovou soustavu s hraničními hodnotami 0 a 15 umožňuje s výhodou pokrýt i obě hraniční hodnoty, tedy jde o oboustranně uzavřený interval hodnot.

Redukovaný zápis #RGB pak pro červenou je #F00. Redukovaně lze v CSS/HTML zapisovat obecně jakékoli barvy, které mají zdvojené cifry všech třech kanálů, ovšem ne každá taková barva je bezpečná, ne každá je totiž dělitelná třemi, na všech třech osách.

Analogie datové redukce ke kódování znaků textu

Ačkoli jsou oba zápisy různě datově/paměťové náročné, z  uživatelského pohledu oba nesou stejnou informaci, stejný užitek. Stejný princip se uplatňuje při kódování textu do binátních dat, když znaky z až 6bajtového UTF-16 lze pro neexotická běžná písma redukovat na UTF-8 (každý druhý bajt je nula), a to beze ztráty informace, při známém předpokladu, že „jde o latinku“. A v druhém sledu lze až tří bajtové UTF-8 zredukovat na jedno-bajtovou kódovou stránku, nebo dokonce na pouhé 7bitové ASCII. Obdobně lze na jedno-bajtovou znakovou sadu redukovat i dvou-bajtový BigEndian Unicode, který při své konstantní délce také opět obsahuje spoustu nul a plýtvá tak místem na úložišti.

Pojmenované barvy

Na tuto kapitolu je přesměrováno heslo Pojmenované barvy.

V HTML/CSS je pojmenováno cca 147 barev.[2] V tomto množství je významný průnik s bezpečnými barvami: Ačkoli ne všechny pojmenované barvy jsou "bezpečné", mají hodnoty i mimo množinu {0, 3, 6, 9, C, F}, i tak jsou v těsném vztahu k bezpečným barvám.

Význam dnes

Při dnešní převaze 24bitových displejů je využito plných 16,7 miliónů barev JPEG. Proto význam bezpečných barev již pomíjí. Význam si drží pro webdesign, kde se očekává, že vytvořená stránka bude vypadat stejně na všech zobrazovacích zařízeních, bez ohledu na jejich stáří. Jde tedy o zpětnou kompatibilitu.

S nástupem smartphonů bezpečné barvy opět získaly na významu.[3]

Opravdu bezpečné barvy

David LehnHadley Stern zjistili, že na počítačových displejích16bitovou hloubkou v každém barevném kanálu (high color, až 48 bitů pro barvu jednoho pixelu) je zobrazeno bez přemapovávání na jiné barvy vlastně jen 22 z původních 216 barev bezpečné palety pro web.[4]

Opravdu bezpečné barvy pro web
_GB \ R__0__3__6__9__C__F__
_00*000**F00*
_03*003**F03*
_0F*00F**F0F*
_F0*0F0**6F0**FF0*
_F3*3F3**6F3**FF3*
_F6*0F6**3F6**CF6*
_FC*0FC**3FC*
_FF*0FF**3FF**6FF**FFF*

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Web colors na anglické Wikipedii.

  1. Zápis barev v HTML a CSS, jakpsatweb.cz
  2. pojmenované barvy, w3schools.com, seznam barev.
  3. Bezpečné barvy, jakpsatweb.cz
  4. Death of the Websafe Color Palette? [online]. Physics.ohio-state.edu [cit. 2013-07-08]. Dostupné online. (anglicky) 

Související články

Externí odkazy