Miten tietokone tekee värejä: RGB, HEX ja binääriluvut
#FF0000. #00FF00. #0000FF. Olet todennäköisesti törmännyt tällaisiin merkintöihin design-suunnitelmissa tai koodissa. Ne näyttävät salakoodeilta tai pelitunnuksilta. Todellisuudessa ne ovat värien nimiä.
Ylhäältä alas: punainen, vihreä, sininen. Ne ovat nimiä, joita tietokone käyttää väreille. Selitetään, mistä nämä merkinnät tulevat.
RGB — kolme kirjainta värin luomiseen
Red, Green, Blue. Valon kolme perusväriä. Sekoittamalla niitä eri suhteissa syntyy kaikki havaitsemamme värit.
Näemme RGB:tä joka päivä
Lähes kaikkialla missä on näyttö, on myös RGB.
- Näyttö / TV — yksi pikseli koostuu kolmesta pisteestä: punainen, vihreä ja sininen
- Älypuhelimen näyttö — sama rakenne, pienemmät pikselit
- Pelaamisen näppäimistön LED — yhdessä näppäimessä kolme LED-valoa: R, G ja B
- PC-kotelon valaistus — RGB-nauha on suoraan RGB-signaali
Kun zoomaat näyttöä tarpeeksi, näet sen itse. Punainen, vihreä, sininen. Siinä kaikki. Miljoonia pieniä RGB-pisteitä kokoontuu yhteen kuvaksi.
Värit sekoitetaan itse
Jokaisella RGB-kanavalla on intensiteetti välillä 0–255.
RGB(255, 0, 0)— vain punainen maksimilla → puhdas punainenRGB(0, 255, 0)— vain vihreä maksimilla → puhdas vihreäRGB(255, 255, 0)— punainen + vihreä → keltainenRGB(0, 0, 0)— kaikki pois → mustaRGB(255, 255, 255)— kaikki maksimilla → valkoinen
Voi tuntua epäintuitiiviselta, että punainen ja vihreä sekoittuvat keltaiseksi, mutta kyse on valon additiivisesta sekoituksesta. Taidetunnilla opittu maaliseos (punainen + vihreä = ruskea) noudattaa eri sääntöjä. Valo kirkastuu kun sitä lisätään, ja kaikki yhdistettynä tuottaa valkoisen.
Kokeile siirtämällä kolmea liukusäädintä itse.
Oikealla näkyvä 8-numeroinen luku on kanavan binääriesitys. Kun siirrät liukusäädintä, luku muuttuu samalla. Seuraava aihe on: miten ykköset ja nollat tuottavat 256 arvoa.
Miksi juuri 0–255?
Tietokone käsittelee vain ykkösiä ja nollia. Yhtä paikkaa, joka voi olla 0 tai 1, kutsutaan bitiksi. Jokainen lisäbitti kaksinkertaistaa esitettävissä olevien arvojen määrän.
8 bittiä = 1 tavu (byte). Yhdessä värissä on kolme RGB-kanavaa, yhteensä 3 tavua = 24 bittiä. 24-bittinen esitys tuottaa noin 16,7 miljoonaa väriä — riittävästi ihmissilmälle, minkä vuoksi 1 tavusta tuli yhden kanavan standardi.
Binääriluvun lukeminen itse
Jokaisella paikalla on kiinteä arvo. Vasemmalta oikealle: 128, 64, 32, 16, 8, 4, 2, 1 — 2:n potenssit.
Laske yhteen kaikkien 1-merkittyjen paikkojen arvot, niin saat desimaaliluvun.
Tämän vuoksi 8-bitin maksimiarvo on 255 — ja siksi RGB-kanava kulkee tarkasti välillä 0–255.
HEX — sama luku, lyhyemmin
RGB(255, 255, 255). Siinä on 16 merkkiä. Se on pitkä toistettavaksi joka kerta CSS-rivillä tai design-työkalun kentässä. Siksi kehitettiin tapa kirjoittaa sama luku lyhyemmin.
Mitä on heksadesimaalijärjestelmä?
Heksadesimaalijärjestelmässä yhdellä merkillä voidaan esittää luvut 0–15. Tavalliset numeromme ovat vain 0–9, eli kymmenen kappaletta. Puuttuvat kuusi lainataan aakkosista.
Kolme sääntöä:
- 0–9 toimii normaalisti kuten aina
- 10:stä alkaen käytetään A:ta
- F on yhden merkin maksimiarvo (= 15)
Miksi juuri heksadesimaalijärjestelmä?
Binäärinen 4-numeroinen luku (0000–1111) esittää täsmälleen 16 arvoa.
4 binäärinumeroa = 1 heksadesimaalimerkki. Neljä numeroa tiivistyy yhdeksi merkiksi. Koska RGB-kanava on 8 bittiä, se sopii täsmälleen kahteen heksadesimaalimerkkiin.
RGB:n muuntaminen HEX-muotoon
Muunnetaan RGB(255, 87, 51).
14-merkkinen esitys supistuu 7 merkiksi.
Värin arvaaminen HEX-koodista
HEX-koodia katsomalla voi päätellä, mistä väristä on kyse.
#FF5733— R maksimi (FF), G puolikas (57), B matala (33) → voimakkaan punainen oranssi#3576E0— R matala (35), G keskikokoinen (76), B voimakas (E0) → hieman violettiin vivahtava sininen#29A85A— R matala (29), G voimakas (A8), B matala (5A) → raikas vihreä
Kun osaat erottaa pelkistä kolmesta paikasta “onko tämä oranssi vai sininen”, designer ja kehittäjä voivat puhua samaa kieltä.
Lyhyt yhteenveto
- RGB — kolme kanavaa: punainen, vihreä, sininen; kukin välillä 0–255
- 8-bittinen binääriluku — selittää, miksi yhdessä kanavassa on täsmälleen 256 arvoa
- HEX — tapa kirjoittaa sama luku kahdella merkillä
Kun nämä kolme käsitettä yhdistyvät, värikoodi ei ole enää vierasta kieltä. RGB:n kolme lukua ovat suoraan HEX:n kuusi merkkiä.
Seuraava askel on kääntää nämä luvut suunnittelijoiden kielelle. Pyynnöt kuten «hieman kirkkaampi», «vähemmän kylläinen» tai «sama paperiväri» ovat vaikeita toteuttaa pelkällä RGB:llä ja HEX:llä. Miten HSL, CMYK ja OKLCH ratkaisevat tämän, käsitellään kirjoituksessa RGB ei riitä: HSL, CMYK ja OKLCH – värinotaatiot selitettynä.