Digitális és informatikai

HEX és RGB színek: csatornaértékek és áttetsző rétegek számítása

Egy konkrét HEX színt RGB-csatornákra bontunk, majd fehér háttérre helyezett áttetsző réteget számolunk. Egységes színtér, kerekítés és alfaérték.

Dajka Gábor3 perc olvasás

A hatjegyű HEX szín három, egyenként kétjegyű csatornaértéket tartalmaz: pirosat, zöldet és kéket. A tizenhatos számrendszerű jelölést tízes számokra váltva ugyanazt a színt RGB-alakban is megadhatod. Egy áttetsző réteg megjelenéséhez viszont a háttér színe is kell: az alfaérték önmagában nem ad végleges képpontszínt.

Egy HEX szín visszafejtése

A W3C CSS Color specifikációja az sRGB színek HEX és RGB jelölését is meghatározza. A hatjegyű alakban minden csatorna 00 és FF között változhat, ami tízesben 0–255. A betűk értékei: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.

Két hexadecimális számjegyből a csatornaérték:

Érték = első számjegy × 16 + második számjegy.

Szemléltető alapszínünk #2E86C1. A piros csatorna 2 × 16 + 14 = 46. A zöld 8 × 16 + 6 = 134. A kék 12 × 16 + 1 = 193. Az RGB csatornahármas: 46, 134, 193.

A HEX–RGB színátváltóban add meg ezt a színt, majd próbáld ki az RGB bemenetet is. A két irány azonos eredményt kell adjon az egész, 8 bites csatornaértékeknél. Az egyezést az értékek alapján ellenőrizd; két külön kijelző látványának összehasonlítása további tényezőket is tartalmaz.

Mi a szerepe az alfának?

Az alfa a fedettség mértéke: 0-nál a réteg nem járul hozzá a megjelenő színhez, 1-nél teljesen fedi az alatta lévő hátteret. Egy teljesen fedő háttérre helyezett réteg egyszerű, azonos színtérben végzett összetétele csatornánként:

Eredmény = alfa × előtér + (1 − alfa) × háttér.

A képlet a W3C egyszerű alfa-összetételi szabályának teljesen fedő háttérre egyszerűsített alakja. A következő példa a megadott sRGB csatornaértékekkel végzett összetételt szemlélteti. Más színtérben végzett keverés, szűrő vagy eltérő rétegmód más eredményt adhat.

A példaszín 25%-os fedettséggel fehér háttéren

A fehér háttér csatornái 255, 255, 255. Az alfa legyen 0,25. A háttér súlya ezért 1 − 0,25 = 0,75.

CsatornaSzámításEredmény
Piros0,25 × 46 + 0,75 × 255202,75
Zöld0,25 × 134 + 0,75 × 255224,75
Kék0,25 × 193 + 0,75 × 255239,50

Egész csatornákra kerekítve 203, 225, 240 adódik. Ezt újra HEX-re váltva #CBE1F0 a kapott jelölés. A fél egységet itt felfelé kerekítettük, és csak az összeadás után alakítottunk egészre.

Ez kézi rétegszámítás. A színátváltót az alapszín és a már kiszámolt eredményszín ellenőrzésére használd; az RGB bevitel nem helyettesíti a teljes oldal rétegeinek vizsgálatát.

Két áttetsző réteg fedettsége

Az egymásra kerülő alfákat általában nem lehet egyszerűen összeadni. Ha két egyforma színű, különálló, 50%-os réteget teszel egymás fölé, az együttes fedettség 1 − (1 − 0,5) × (1 − 0,5) = 0,75, azaz 75%. A végleges színhez ezután a háttér is szükséges.

Eltérő előtérszíneknél a rétegek sorrendje is számít. A 0–255 tartományú színcsatornát pedig ne keverd össze a 0–1 tartományú alfaértékkel. Egy 128-as nyolcbites alfa aránya 128 / 255 ≈ 0,502, ami kicsit nagyobb a pontos 0,5-nél.

A konkrét felület ellenőrzésekor ezért őrizd meg az alapszínt, a fedettséget, a hátteret és a rétegek sorrendjét. A kiszámolt RGB érték ezekkel a feltételekkel együtt értelmezhető.

További cikkek

Kapcsolódó olvasnivalók

Gyorskereső

Kalkulátorok és útmutatók keresése

↑↓ választásEnter megnyitásEsc bezárás