RGB–HSL konvertáló

Konvertálja a(z) RGB értéket HSL értékké gépelés közben – ingyenesen, azonnal, gyakorlati példával és gyakori színek táblázatával.

Gyakorlati példa

RGB 255, 87, 51 = HSL 11, 100%, 60%

Hogyan működik a konverzió

  • A HSL ugyanazt a színt a színárnyalat (0–360° a színkörön), a telítettség és a fényerő alapján írja le – ez különösen hasznos egy szín sötétítéséhez vagy telítettségének csökkentéséhez egyetlen komponens módosításával.

Gyakori színek RGB és HSL formátumban

SzínRGBHSL
Piros255, 0, 00, 100%, 50%
Narancssárga255, 165, 039, 100%, 50%
Sárga255, 255, 060, 100%, 50%
Zöld0, 128, 0120, 100%, 25%
Cián0, 255, 255180, 100%, 50%
Kék0, 0, 255240, 100%, 50%
Lila128, 0, 128300, 100%, 25%
Rózsaszín255, 192, 203350, 100%, 88%
Barna165, 42, 420, 59%, 41%
Fehér255, 255, 2550, 0%, 100%
Szürke128, 128, 1280, 0%, 50%
Fekete0, 0, 00, 0%, 0%

Minden konverzió a böngészőjében fut le. Semmilyen megadott adat nem kerül feltöltésre a BroBroGo szervereire.

Gyakran Ismételt Kérdések

Hogyan konvertálhatok RGB értéket HSL értékké?

Írja be vagy illessze be a(z) RGB értéket fent – a(z) HSL érték gépelés közben azonnal frissül. A színt vizuálisan is kiválaszthatja a színpalettával.

Pontos a konverzió?

Az értékek egész számokra vannak kerekítve, ahogyan azt a CSS és a tervezőeszközök elvárják. A különbség messze elmarad attól, amit az emberi szem érzékelni képes.

Mit jelent az RGB és a HSL a gyakorlatban?

Az RGB (Red, Green, Blue) a digitális kijelzők natív színmodellje. Minden szín három csatorna 0 és 255 közötti egész számával van kódolva, ahol a 0 a minimális, a 255 a maximális intenzitást jelenti. Például a 79, 70, 229 RGB érték egy ibolya árnyalatot ad: a kék csatorna dominál (229), a vörös és a zöld alacsonyabb szinten van. Az RGB additív színkeverést használ: ha mindhárom csatorna 255, fehéret kapunk; ha mindhárom 0, feketét. A gyakorlatban az sRGB színtér a leggyakoribb referenciakeret, amelyet a legtöbb monitor, böngésző és eszköz használ.

Ezzel szemben a HSL (Hue, Saturation, Lightness) nem a kijelző fizikai működését, hanem az emberi színérzékelés logikáját tükrözi. A színezetet (hue) egy 0°-tól 360°-ig terjedő körön ábrázoljuk: 0° piros, 120° zöld, 240° kék. A telítettség (saturation) százalékban fejezi ki a szín tisztaságát: 0% esetén a szín telítetlen, szürkeárnyalatos; 100% esetén a legélénkebb. A világosság (lightness) szintén százalékban adja meg, mennyire világos vagy sötét a szín: 0% fekete, 100% fehér, 50% a normál vagy tiszta szín.

A konverzió a kettő között nem triviális, de az eszköz azonnal elvégzi. Ha a fenti példánál maradunk: 79, 70, 229 RGB értékből hsl(243°, 75%, 59%) lesz. Ez azt jelenti, hogy a színezet a kék és a bíbor között található (243°), a telítettség magas (75%), a világosság pedig közepes (59%). Az eszköz ezen felül megjeleníti a HEX, HSV, CMYK és LAB megfelelőket is, így bármely formátumot kimásolhatjuk a projekthez.

Hogyan működik a konverzió belülről?

A konverzió három lépésből áll, amelyeket böngészőben, JavaScripttel hajtunk végre. Az RGB csatornákat először 0–1 közötti tartományba normalizáljuk: a 0–255 értékeket elosztjuk 255-tel. A példa esetén: R=79/255≈0,310, G=70/255≈0,275, B=229/255≈0,898.

Ezután meghatározzuk a három csatorna minimumát és maximumát. A maximum (0,898) a kék, a minimum (0,275) a zöld. A különbség: Δ = 0,898 – 0,275 = 0,623. A világosság a maximum és minimum átlaga: L = (0,898 + 0,275) / 2 ≈ 0,586, ami 58,6%, kerekítve 59%.

A telítettség kiszámítása függ a világosságtól. Ha L kisebb, mint 0,5: S = Δ / (max + min). Itt L > 0,5, ezért a második képletet használjuk: S = Δ / (2 – max – min). Behelyettesítve: S = 0,623 / (2 – 0,898 – 0,275) = 0,623 / 0,827 ≈ 0,753, azaz 75,3%, kerekítve 75%.

A színezetet (hue) a csatornák relatív helyzete alapján számítjuk. Ha a maximum a kék (mint itt), akkor H = 4 + (R – G) / Δ. R–G = 0,310 – 0,275 = 0,035. Osztva Δ-vel: 0,035 / 0,623 ≈ 0,056. H = 4 + 0,056 = 4,056. Ezt megszorozzuk 60°-kal: 4,056 × 60 = 243,36°, ami 243°-ra kerekíthető. (Ha a maximum a vörös vagy a zöld lett volna, más képletet használunk, és az eredményt modulo 360-ra hozzuk.)

A matematika pontosan definiált, és az eszköz minden bemeneti módosítás után újraszámolja az összes kimeneti mezőt. A konverzió visszafelé is működik: ha a HSL mezőbe beírjuk például a 243°, 75%, 59% értéket, az RGB mezőben azonnal megjelenik a 79, 70, 229.

Miért a HSL-t használjuk palettákhoz és témákhoz?

Az RGB-ben a színezet és a világosság összefonódik. Ha egy RGB színből világosabb változatot akarunk, növelnünk kell mindhárom csatornát, ami gyakran a színezet eltolódásához vezet. A HSL ezt kiküszöböli: a világosság csatorna önállóan állítható, miközben a színezet és a telítettség változatlan marad.

Ezt a tulajdonságot UI/UX tervezők használják ki akadálymentes színpaletták készítésénél. A WCAG kontrasztarányok betartásához gyakran elegendő a világosság értékét módosítani anélkül, hogy a márka színidentitása sérülne. Például egy hsl(243°, 75%, 59%) színhez könnyen készíthetünk egy hsl(243°, 75%, 80%) világos változatot háttérszínként, vagy egy hsl(243°, 75%, 40%) sötét változatot szövegszínként.

A temakészítésben a HSL további előnye, hogy a színezet kör mentén haladva könnyen generálhatók komplementer, analóg vagy triádikus színskálák. Ehhez elegendő a színezet értékéhez hozzáadni vagy kivonni egy fix fokszámot (pl. 30°, 60°, 120°), miközben a telítettséget és a világosságot állandónak tartjuk. RGB-ben ugyanez a művelet nem lenne lineáris, és csak bonyolult színtértranszformációkkal lenne megoldható.

A konverzió peremfeltételei és hibák

Az eszköz szigorú érvényesítést végez a bemeneti mezőkön. RGB esetén pontosan három, 0 és 255 közötti egész számot kell megadni, vesszővel vagy szóközzel elválasztva. Ha a felhasználó például 79, 70, 300-at ír be, a hibaüzenet: "Írja be az RGB-t három 0–255 közötti számként, például: 79, 70, 229." HSL esetén a formátum: színezet 0–360, majd két százalék, például 243°, 75%, 59%. Hibás bemenetre a figyelmeztetés: "Írja be a HSL-t színezet 0–360 és két százalék formátumban, például: 243°, 75%, 59%."

A LAB és CMYK bemenetek esetében specifikus peremfeltétel lép fel. Ha egy LAB vagy CMYK érték a látható RGB gamuton (színtartományon) kívül esik, az eszköz automatikusan a legközelebbi, megjeleníthető színhez igazítja azt. Ez a korrekció azonban nem feltétlenül invertálható: ha a korrigált színt visszaalakítjuk LAB-be, az eredeti értéktől eltérő számokat kaphatunk. Ezért a CMYK kimenet csak képernyőn való becslés; professzionális nyomdai munkához minden esetben hitelesíteni kell a színminta fizikai kivonatával.

Hol találkozik a HSL a webes gyakorlattal?

A CSS natívan támogatja a hsl() és hsla() függvényeket. A hsla(243°, 75%, 59%, 0.8) kifejezés egy 80%-os átlátszóságú ibolya színt eredményez. A HSL előnye itt is a dinamikus módosíthatóság: JavaScript segítségével a világosság csatorna értékét változtatva sötét/világos módot lehet kapcsolni anélkül, hogy a színezetet újra kellene számolni.

Példa: egy data-theme="dark" attribútum hatására a CSS változó --primary-lightness értékét 59%-ról 40%-ra csökkentjük. Az összes hsl(var(--primary-hue), var(--primary-saturation), var(--primary-lightness)) hivatkozás automatikusan alkalmazkodik. Ezt a technikát front-end fejlesztők és design token rendszerek használják, amikor egy RGB alapú tervezőeszközből (pl. Figma) kell a HSL formátumot kinyerni a CSS-be.

A HSL korlátai és alternatívák

Bár a HSL intuitívabb az emberi szem számára, mint az RGB, nem perceptuálisan egyenletes. Ez azt jelenti, hogy ugyanazon világosság százalék mellett a sárga szín sokkal világosabbnak tűnik, mint a kék. Az emberi szem nem lineárisan érzékeli a fényességet; a sárga csatorna biológiailag erősebb ingert kelt. Ezért ha egy igazán egyenletes színskálára van szükség (például adatvizualizációs színátmenetekhez), a CIELAB (LAB) modell jobb választás. A LAB a színeket az emberi látás pszichofizikai jellemzőihez igazítja, bár számításigényesebb és kevésbé elterjedt a CSS-ben.

Az eszköz ezért a HSL mellett a LAB értéket is megjeleníti, hogy a felhasználó összehasonlíthassa a modelleket. A HSL és RGB mindkettő a kijelző gamuthoz kötött; a LAB ezzel szemben eszközfüggetlen, de a képernyőn való megjelenítéshez vissza kell konvertálni sRGB-be, ami további korlátokat jelent.

Gyakran Ismételt Kérdések (FAQ)

Hogyan kell megadnom az RGB értéket?
Pontosan három egész számot, 0 és 255 között, vesszővel vagy szóközzel elválasztva. Példa: 79, 70, 229 vagy 79 70 229. Tizedesjegyeket, százalékjelet vagy betűket ne használjon.

Mit jelent a HSL esetében a 0% telítettség?
A szín teljesen szürkeárnyalatossá válik; minden színezetinformáció eltűnik, a világosság értéke határozza meg a szürke árnyalatát (0% fekete, 100% fehér).

Miért nem pontos a CMYK kimenet nyomtatáshoz?
A CMYK érték a képernyőn lévő RGB színből egy általános konverziós algoritmussal (pl. UCR, GCR) készül, amely csak becslés. A nyomdai színrekorderek eltérőek lehetnek; mindig végeztessen hiteles színmérést a végleges nyomathoz.

Mi történik, ha a LAB érték a látható tartományon kívül esik?
Az eszköz a legközelebbi, megjeleníthető RGB színhez igazítja. Ezt a korrigált színt jelzi; a visszakonvertált LAB érték nem feltétlenül lesz azonos az eredetivel.

Lehet a HSL értéket közvetlenül CSS-ben használni?
Igen, a hsl(243°, 75%, 59%) szintaxis érvényes CSS-ben. A hsla() függvény negyedik paraméterként az átlátszóságot (alfa csatornát) várja, 0 és 1 közötti értékkel.

Miért nem perceptuálisan egyenletes a HSL?
Mivel a világosság csatorna lineárisan számított átlag, az emberi szem nemlineáris érzékenységét nem veszi figyelembe. A sárga és a kék azonos L% mellett teljesen eltérő vizuális fényerőt képvisel. Erre a LAB modell nyújt pontosabb, bár számításigényesebb megoldást.