RGB ütleb ekraanile, kui palju valgust välja saata; HSL ütleb, kuidas värv tegelikult välja näeb. Kolme kanali teisendamine tooniks, küllastuseks ja heleduseks muudab värvi käsitsi lihtsasti reguleeritavaks.
Kuidas RGB -> HSL teisendamine toimib
- Jaga R, G ja B 255-ga, nii et iga väärtus jääb vahemikku 0–1.
- Võta kolmest maksimum ja miinimum — nende keskmine on heledus L.
- Kui maksimum ja miinimum on võrdsed, on värv hall: toon ja küllastus on mõlemad 0.
- Vastasel juhul tuleta S vahe põhjal maksimumi ja miinimumi vahel ning loe H sellest kanalist, mis on maksimum.
Töötav näide
Põhimõtteliselt täpne. Kuna H, S ja L kuvatakse tavaliselt ümardatud täisarvudena, võib tagasi teisendamisel mõni kanal nihkuda ühe või kahe sammu võrra.
RGB ja HSL selgitatud
Mis on RGB?
RGB kirjeldab värvi kolme valguskanaliga — red (punane), green (roheline) ja blue (sinine) — igaüks vahemikus 0 kuni 255. See peegeldab, kuidas ekraanid tegelikult töötavad: kõik kanalid 255 annavad valge, kõik 0 annavad musta. RGB on õige valik, kui pead värgiga arvutusi tegema; rgba() lisab selle juurde läbipaistvuse.
- Süntaks:
- rgb(R, G, B)
- Vahemik:
- 0–255 per kanal
- Parim jaoks:
- kood, canvas, läbipaistvus rgba() abil
Mis on HSL?
HSL jagab värvi tooniks (0–360° värvirattal), küllastuseks (kui erksas, 0–100%) ja heleduseks (kui hele, 0–100%). Kuna iga osa peegeldab seda, kuidas inimesed värve kirjeldavad, on HSL kõige lihtsam vorming varjundite, toonide ja järjepidevate palettide loomiseks — käsitsi või koodis.
- Süntaks:
- hsl(H, S%, L%)
- Vahemik:
- 0–360°, 0–100%, 0–100%
- Parim jaoks:
- paletid, toonid ja varjundid, teematöö
RGB -> HSL võrdlustabel
Kõige levinumad CSS-värvid, teisendatud RGB formaadist HSL formaati.
| Värv | RGB | HSL |
|---|---|---|
| black | rgb(0, 0, 0) | hsl(0, 0%, 0%) |
| white | rgb(255, 255, 255) | hsl(0, 0%, 100%) |
| red | rgb(255, 0, 0) | hsl(0, 100%, 50%) |
| lime | rgb(0, 255, 0) | hsl(120, 100%, 50%) |
| blue | rgb(0, 0, 255) | hsl(240, 100%, 50%) |
| yellow | rgb(255, 255, 0) | hsl(60, 100%, 50%) |
| orange | rgb(255, 165, 0) | hsl(39, 100%, 50%) |
| teal | rgb(0, 128, 128) | hsl(180, 100%, 25%) |
| purple | rgb(128, 0, 128) | hsl(300, 100%, 25%) |
| gray | rgb(128, 128, 128) | hsl(0, 0%, 50%) |