RGB norāda ekrānam, cik daudz gaismas izstarot; HSL saka, kā krāsa patiesībā izskatās. Trīs kanālu pārvēršana toņa, piesātinājuma un gaišuma formā padara krāsu viegli regulējamu ar roku.
Kā darbojas RGB uz HSL konvertēšana
- Dali R, G un B ar 255, lai katra vērtība būtu starp 0 un 1.
- Paņem triju vērtību maksimumu un minimumu — to vidējais ir gaišums L.
- Ja maksimums un minimums sakrīt, krāsa ir pelēka: tonis un piesātinājums abi ir 0.
- Citādi iegūsti S no maksimuma un minimuma starpības un nolasī H no tā kanāla, kas ir maksimumā.
Praktisks piemērs
Principā precīzi. Tā kā H, S un L parasti attēlo noapaļotus veselus skaitļus, atpakaļkonvertējot var mainīties kāds kanāls par vienu vai diviem soļiem.
RGB un HSL izskaidrojums
Kas ir RGB?
RGB attēlo krāsu kā trīs gaismas kanālus — sarkanu, zaļu un zilu — katrs no 0 līdz 255. Tas atspoguļo, kā ekrāni patiesībā strādā: visi trīs 255 dod baltu, visi 0 dod melnu. RGB ir pareizā izvēle, kad jāveic aprēķini ar krāsu, un rgba() pievieno caurspīdīgumu virsū.
- Sintakse:
- rgb(R, G, B)
- Diapazons:
- 0–255 per channel
- Vislabāk piemērots:
- kods, canvas, caurspīdīgums ar rgba()
Kas ir HSL?
HSL sadala krāsu toņos (0–360° krāsu ritenī), piesātinājumā (cik krāsaina, 0–100%) un gaišumā (cik spilgta, 0–100%). Tā kā katra daļa atbilst tam, kā cilvēki apraksta krāsu, HSL ir visvienkāršākais formāts tintiņu, nokrāsu un konsekventu paletju veidošanai — gan manuāli, gan kodā.
- Sintakse:
- hsl(H, S%, L%)
- Diapazons:
- 0–360°, 0–100%, 0–100%
- Vislabāk piemērots:
- paletes, tintiņas un nokrāsas, tēmu veidošana
RGB uz HSL atsauces tabula
Visizplatītākās CSS krāsas, konvertētas no RGB uz HSL.
| Krāsa | 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%) |