Przelicz wartości RGB na zapis HSL
Wpisz trzy kanały RGB, a zapis HSL pojawi się w trakcie pisania: rgb(59, 130, 246) to hsl(217.2, 91.2%, 59.8%). Pole przyjmuje liczby z nawiasem i bez, a kanały zapisane ułamkami od 0 do 1 rozpozna samo. Przełącznikiem wybierzesz zapis CSS albo skalę Office.
Jak przeliczyć RGB na HSL?
Podziel każdy kanał przez 255 i znajdź wśród nich największy oraz najmniejszy. Jasność to średnia tych dwóch wartości. Nasycenie wynika z różnicy między nimi, a odcień z tego, który kanał jest najmocniejszy[1].
Wzór: Δ = max − min, L = (max + min) ÷ 2, S = Δ ÷ (1 − |2L − 1|), a gdy najmocniejszy jest kanał czerwony, H = 60° × ((G − B) ÷ Δ).
Weźmy rgb(239, 68, 68). Po podzieleniu przez 255 kanał czerwony ma 0,937, a zielony i niebieski po 0,267. Średnia największego i najmniejszego to 0,602, więc jasność wynosi 60,2%. Różnica między nimi to 0,671, a wzór na nasycenie daje z niej 84,2%.
Kanały zielony i niebieski są tu równe, więc odcień wynosi dokładnie 0°. Cały kolor to hsl(0, 84.2%, 60.2%). Gdy najmocniejszy jest kanał zielony, odcień liczy się od 120°, dlatego rgb(34, 197, 94) daje hsl(142.1, 70.6%, 45.3%).
Kod HEX tych samych kolorów poda konwerter RGB na HEX, a z kodu od razu do HSL przeliczy konwerter HEX na HSL.
Czym zapis HSL różni się od RGB?
RGB opisuje kolor ilością światła czerwonego, zielonego i niebieskiego, z której ekran składa punkt. HSL opisuje ten sam kolor przez barwę, ilość koloru i jasność. Specyfikacja CSS zauważa, że z liczb RGB trudno odgadnąć, jak zmienić kolor na jaśniejszy w tej samej barwie[1].
Oba zapisy opisują tę samą przestrzeń sRGB. Kolor podany w CSS jako HSL przeglądarka zamienia na sRGB[1], dlatego każdy kolor HSL da się zapisać trzema kanałami RGB i odwrotnie.
Autorzy modelu, George Joblove i Donald Greenberg, nazwali w 1978 roku jego wymiary inaczej niż dzisiejszy CSS: odcień, względna chroma i intensywność[2]. Specyfikacja CSS nazywa je hue, saturation i lightness, czyli odcień, nasycenie i jasność[1].
Jeśli kolor masz w innym zapisie, na przykład w OKLCH, Lab albo jako kod z Androida, konwerter kolorów pokaże go naraz we wszystkich zapisach.
Jaki zapis HSL mają szarości RGB?
| Wartości RGB | Kod HEX | HSL w CSS | HSL w Office (0–255) |
|---|---|---|---|
| 0, 0, 0 | #000000 | hsl(0, 0%, 0%) | 170, 0, 0 |
| 32, 32, 32 | #202020 | hsl(0, 0%, 12.5%) | 170, 0, 32 |
| 64, 64, 64 | #404040 | hsl(0, 0%, 25.1%) | 170, 0, 64 |
| 96, 96, 96 | #606060 | hsl(0, 0%, 37.6%) | 170, 0, 96 |
| 128, 128, 128 | #808080 | hsl(0, 0%, 50.2%) | 170, 0, 128 |
| 160, 160, 160 | #A0A0A0 | hsl(0, 0%, 62.7%) | 170, 0, 160 |
| 192, 192, 192 | #C0C0C0 | hsl(0, 0%, 75.3%) | 170, 0, 192 |
| 224, 224, 224 | #E0E0E0 | hsl(0, 0%, 87.8%) | 170, 0, 224 |
| 255, 255, 255 | #FFFFFF | hsl(0, 0%, 100%) | 170, 0, 255 |
Jak zapisać kolor RGB z kryciem w HSL?
rgba() jest czwartą liczbą w hsla(). Tabela pokazuje siedem wartości krycia dla koloru rgb(59, 130, 246) razem z kodem HEX, w którym krycie zajmuje dwie ostatnie cyfry.| Krycie | Zapis rgba | Zapis hsla | Kod HEX |
|---|---|---|---|
| 100% | rgba(59, 130, 246, 1) | hsl(217.2, 91.2%, 59.8%) | #3B82F6 |
| 90% | rgba(59, 130, 246, 0.9) | hsla(217.2, 91.2%, 59.8%, 0.9) | #3B82F6E6 |
| 75% | rgba(59, 130, 246, 0.75) | hsla(217.2, 91.2%, 59.8%, 0.75) | #3B82F6BF |
| 50% | rgba(59, 130, 246, 0.5) | hsla(217.2, 91.2%, 59.8%, 0.5) | #3B82F680 |
| 25% | rgba(59, 130, 246, 0.25) | hsla(217.2, 91.2%, 59.8%, 0.25) | #3B82F640 |
| 10% | rgba(59, 130, 246, 0.1) | hsla(217.2, 91.2%, 59.8%, 0.1) | #3B82F61A |
| 0% | rgba(59, 130, 246, 0) | hsla(217.2, 91.2%, 59.8%, 0) | #3B82F600 |
hsl(), bo pełne krycie jest wartością domyślną.Jak przeliczyć na HSL kanały zapisane ułamkami od 0 do 1?
| Kanały 0–1 | HSL w CSS | HSL w Office (0–255) |
|---|---|---|
| 0.2314, 0.5098, 0.9647 | hsl(217.2, 91.2%, 59.8%) | 154, 233, 153 |
| 0.1333, 0.7725, 0.3686 | hsl(142.1, 70.6%, 45.3%) | 100, 180, 116 |
| 0.5, 0.5, 0.5 | hsl(0, 0%, 50.2%) | 170, 0, 128 |
| 1.0, 0, 0 | hsl(0, 100%, 50%) | 0, 255, 128 |
1, 0, 0 ma same liczby całkowite, więc konwerter policzy ją w skali 0–255. Zapis 1.0, 0, 0 wskazuje ułamki i daje pełną czerwień.Jakie zapisy wartości RGB obsługuje ten konwerter?
| Co wpisujesz | Co pokaże konwerter | Jak to czytamy |
|---|---|---|
| rgb(59, 130, 246) | hsl(217.2, 91.2%, 59.8%) | Zapis CSS z nawiasem przyjmujemy bez zmian |
| 59 130 246 | hsl(217.2, 91.2%, 59.8%) | Trzy liczby rozdzielone spacjami wystarczą, nawiasy i przecinki nie są potrzebne |
| R: 59, G: 130, B: 246 | hsl(217.2, 91.2%, 59.8%) | Litery kanałów, tak jak zapisuje je księga znaku, pomijamy i bierzemy same liczby |
| rgb(23.1%, 51%, 96.5%) | hsl(217.2, 91.2%, 59.8%) | Kanały podane w procentach przeliczamy na skalę 0–255 sami |
| rgba(59, 130, 246, 0,5) | hsla(217.2, 91.2%, 59.8%, 0.5) | Krycie zapisane z przecinkiem dziesiętnym przenosimy do wyniku w postaci hsla |
| 0,2314 0,5098 0,9647 | hsl(217.2, 91.2%, 59.8%) | Kanały zapisane jako ułamki od 0 do 1 poznajemy po przecinku i przeliczamy na skalę 0–255 |
| [59, 130, 246] | hsl(217.2, 91.2%, 59.8%) | Tablicę NumPy, którą wypisuje Python, czytamy razem z nawiasem kwadratowym |
| background-color: rgb(59, 130, 246); | hsl(217.2, 91.2%, 59.8%) | Wklej całą linię z arkusza stylów, sam kolor z niej wyjmiemy |
| 300, -20, 128 | hsl(329.9, 100%, 50%) | Wartości spoza zakresu przycinamy tak samo jak przeglądarka: 300 do 255, a −20 do 0 |
Jak przeliczyć RGB na HSL w kodzie, w CSS i w Office?
Python, CSS i Office potrafią przeliczyć RGB na HSL same. Każde z nich zapisuje wynik w innej postaci, więc przy każdym podajemy, jak go odczytać.
Python
Funkcjacolorsys.rgb_to_hls(r, g, b)przyjmuje kanały od 0 do 1 i zwraca odcień, jasność i nasycenie w tej kolejności[3]. Dla#3B82F6odcień wynosi 0,6034. To ułamek pełnego obrotu, więc po pomnożeniu przez 360 daje 217,2°.CSS
W zapisie względnymhsl(from rgb(59 130 246) h s calc(l + 10))przeglądarka sama przelicza RGB na HSL i podnosi jasność o 10 punktów[4]. Sprawdziliśmy ten zapis w Chromium 151.Okno Kolory w Office
Wpisz kanały przy modelu RGB, a potem przełącz Model kolorów na HSL. Okno pokaże odcień, nasycenie i jasność w skali od 0 do 255[5], czyli te same liczby, które konwerter podaje w zapisie Microsoft Office (0–255).
Konwertuj inne jednostki na HSL
Konwertuj RGB na inne jednostki
Źródła
- CSS Color Module Level 4 — Converting sRGB Colors to HSL — W3C
- HSL and HSV — Wikipedia (wersja angielska)
- colorsys — Conversions between color systems — Python Software Foundation
- Using relative colors — MDN Web Docs
- Wybieranie kolorów w oknie dialogowym Kolory — Microsoft Support
Wszystkie wartości w tabelach wyliczyliśmy z definicji jednostek i sprawdziliśmy rachunkowo przed publikacją. Dane historyczne i nazwy lokalnych jednostek opieramy na źródłach wymienionych wyżej.
Ostatnia aktualizacja treści: · przygotował i sprawdził zespół Arteon
Najczęstsze pytania o przeliczanie RGB na HSL
Czy mogę wpisać kanały RGB w procentach?
Tak. Konwerter przelicza procenty na skalę 0–255, więc rgb(23.1%, 51%, 96.5%) daje ten sam wynik co rgb(59, 130, 246), czyli hsl(217.2, 91.2%, 59.8%).
Dlaczego getComputedStyle zwraca rgb, choć w CSS wpisałem hsl?
Przeglądarka zamienia kolor HSL na sRGB już przy obliczaniu stylu, a wartość obliczoną zapisuje w postaci rgb() albo rgba()[1]. Zapis HSL zobaczysz z powrotem, gdy przeliczysz ten wynik tutaj.
Dlaczego colorsys w Pythonie podaje inną kolejność niż CSS?
Moduł colorsys nazywa ten model HLS i zwraca jasność przed nasyceniem[3]. Wartości (0.6034, 0.598, 0.912) to więc odcień 217,2°, jasność 59,8% i nasycenie 91,2%, zapisane w CSS jako hsl(217.2, 91.2%, 59.8%).
Jak przeliczyć HSL z powrotem na RGB?
Wpisz zapis do konwertera HSL na RGB. Przycisk Zmień kolejność przeniesie Cię tam razem z bieżącym wynikiem.
Czy szary kolor ma w HSL jakiś odcień?
Przy nasyceniu 0% odcień nie zmienia koloru[1], więc konwerter podaje w zapisie CSS zero. Okno Kolory w Office wpisuje w to miejsce 170, a kolor wychodzi ten sam.
Jak sprawdzić, czy kolor RGB jest czytelny na tle?
Wklej wartości RGB albo wynik HSL do narzędzia do sprawdzania kontrastu i czytelności. Poda ono współczynnik kontrastu razem z progami WCAG dla tekstu.

Pomóż nam ulepszyć narzędzia
Masz pomysł na nową funkcję, widzisz błąd lub chcesz zaproponować inne narzędzie? Napisz do nas.