Az HSL barátságos módja a színválasztásnak, az RGB-t viszont a képernyők, a canvas API-k és a képfeldolgozó kódok használják. Ez az átalakító bármely árnyalat–telítettség–világosság hármast pontos 0–255 csatornákká alakít.
Hogyan működik a HSL → RGB átalakítás
- Alakítsd S-t és L-t törtértékekké, majd számold ki a chroma-t C = (1 − |2L − 1|) × S.
- Oszd el az árnyalatot 60-nal, hogy megtaláld a színkör szegmensét, és számold ki a köztes értéket X = C × (1 − |(H/60 mod 2) − 1|).
- Rendeld a C, X és 0 értékeket az R, G és B helyekre a szegmens szerint.
- Add hozzá a világosságkorrekciót L − C/2 mindhárom csatornához, majd szorozd meg 255-tel.
Példa a gyakorlatban
Az eredmény pontos a végső egészre kerekítésig. Tört árnyalat- vagy telítettségértékeket is támogatunk — azok egyszerűen a legközelebbi RGB hármasra kerülnek.
HSL és RGB magyarázata
Mi az a HSL?
A HSL a színt három részre bontja: hue (0–360° a színségen), saturation (mennyire színes, 0–100%) és lightness (mennyire világos, 0–100%). Mivel minden rész megfelel annak, ahogy az emberek a színt leírják, a HSL a legegyszerűbb formátum árnyalatok, tónusok és egységes paletták kézi vagy kód alapú létrehozásához.
- Szintaxis:
- hsl(H, S%, L%)
- Tartomány:
- 0–360°, 0–100%, 0–100%
- Legjobb erre:
- paletták, tónusok és árnyalatok, témázás
Mi az a RGB?
Az RGB egy színt három fénysávként ír le — vörös, zöld és kék — mindegyik 0–255 között. Ez tükrözi, hogyan működnek a képernyők: mindhárom 255-nél fehér, mindhárom 0-nál fekete. Az RGB a jó választás, amikor számolni kell a színnel; az rgba() pedig átlátszóságot ad hozzá.
- Szintaxis:
- rgb(R, G, B)
- Tartomány:
- 0–255 csatornánként
- Legjobb erre:
- kód, canvas, átlátszóság rgba()-vel
HSL → RGB referencia táblázat
A leggyakoribb CSS-színek, átalakítva HSL-ról RGB-ra.
| Szín | HSL | RGB |
|---|---|---|
| black | hsl(0, 0%, 0%) | rgb(0, 0, 0) |
| white | hsl(0, 0%, 100%) | rgb(255, 255, 255) |
| red | hsl(0, 100%, 50%) | rgb(255, 0, 0) |
| lime | hsl(120, 100%, 50%) | rgb(0, 255, 0) |
| blue | hsl(240, 100%, 50%) | rgb(0, 0, 255) |
| yellow | hsl(60, 100%, 50%) | rgb(255, 255, 0) |
| orange | hsl(39, 100%, 50%) | rgb(255, 166, 0) |
| teal | hsl(180, 100%, 25%) | rgb(0, 127, 128) |
| purple | hsl(300, 100%, 25%) | rgb(128, 0, 127) |
| gray | hsl(0, 0%, 50%) | rgb(128, 128, 128) |