Przelicz zapis HSV na wartości RGB
Wpisz odcień, nasycenie i jasność, a kanały RGB pojawią się w trakcie pisania: hsv(217.2, 76%, 96.5%) to rgb(59, 130, 246). Pole przyjmuje stopnie i procenty z Photoshopa albo Figmy, trójkę liczb z OpenCV i ułamki z Pythona. Właściwy zapis wybierz przełącznikiem Zapis HSV przed wklejeniem liczb, bo gdy w polu jest już kolor, przełącznik przepisuje go na ten sam kolor w nowym zapisie.
Wpisz odcień w stopniach, a nasycenie i jasność w procentach. Wartości możesz rozdzielić przecinkami albo spacjami.
Co oznaczają trzy liczby HSV?
Pierwsza liczba to odcień (H), zapisany jako kąt na kole barw: 0° to czerwień, 120° zieleń, a 240° niebieski[1]. Druga to nasycenie (S), a trzecia to jasność (V). W Photoshopie ten sam model nazywa się HSB, a pomoc Adobe nazywa jego składowe barwą, nasyceniem i jasnością[2].
Nasycenie i jasność najłatwiej zrozumieć przez farby. Alvy Ray Smith, który opisał ten model w 1978 roku, porównał je do dodawania bieli i czerni do czystej barwy: niższe nasycenie to więcej bieli, a niższa jasność to więcej czerni[3]. Dlatego przy jasności 0% kolor jest czarny bez względu na dwie pozostałe liczby, a przy nasyceniu 0% zostaje szarość o tej jasności.

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.
Jak przeliczyć HSV na RGB?
Najpierw policz chromę, czyli rozpiętość kanałów: C = V × S. Potem podziel odcień przez 60°. Część całkowita wyniku wskazuje jeden z sześciu wycinków koła, a z reszty liczysz kanał pośredni: X = C × (1 − |(H ÷ 60°) mod 2 − 1|). Na koniec do wszystkich kanałów dodajesz m = V − C[4].
Weźmy hsv(217.2, 76%, 96.5%). Chroma to 0,965 × 0,76 = 0,733. Odcień podzielony przez 60° daje 3,62, czyli wycinek między 180° a 240°, w którym czerwony kanał jest zerowy, zielony pośredni, a niebieski pełny. Kanał pośredni wynosi 0,733 × (1 − |1,62 − 1|) = 0,279, a m = 0,965 − 0,733 = 0,232.
Po dodaniu m kanały mają 0,232, 0,511 i 0,965. Po pomnożeniu przez 255 i zaokrągleniu wychodzi rgb(59, 130, 246), a kod HEX tego koloru poda konwerter RGB na HEX.
Jakie kolory RGB leżą na kole barw co 30°?
| Zapis HSV | Wartości RGB | Kod HEX |
|---|---|---|
| hsv(0, 100%, 100%) | rgb(255, 0, 0) | #FF0000 |
| hsv(30, 100%, 100%) | rgb(255, 128, 0) | #FF8000 |
| hsv(60, 100%, 100%) | rgb(255, 255, 0) | #FFFF00 |
| hsv(90, 100%, 100%) | rgb(128, 255, 0) | #80FF00 |
| hsv(120, 100%, 100%) | rgb(0, 255, 0) | #00FF00 |
| hsv(150, 100%, 100%) | rgb(0, 255, 128) | #00FF80 |
| hsv(180, 100%, 100%) | rgb(0, 255, 255) | #00FFFF |
| hsv(210, 100%, 100%) | rgb(0, 128, 255) | #0080FF |
| hsv(240, 100%, 100%) | rgb(0, 0, 255) | #0000FF |
| hsv(270, 100%, 100%) | rgb(128, 0, 255) | #8000FF |
| hsv(300, 100%, 100%) | rgb(255, 0, 255) | #FF00FF |
| hsv(330, 100%, 100%) | rgb(255, 0, 128) | #FF0080 |
hsv(0, 100%, 50%) to rgb(128, 0, 0).Czy liczby całkowite z Figmy dają dokładnie ten sam kolor?
| Zapis HSV | Wartości RGB | Kod HEX |
|---|---|---|
| hsv(217.2, 76%, 96.5%) | rgb(59, 130, 246) | #3B82F6 |
| hsv(217, 76%, 96%) | rgb(59, 130, 245) | #3B82F5 |
| hsv(217, 76%, 97%) | rgb(59, 131, 247) | #3B83F7 |
| hsv(142.1, 82.7%, 77.3%) | rgb(34, 197, 94) | #22C55E |
| hsv(142, 83%, 77%) | rgb(33, 196, 93) | #21C45D |
Jak zapisać kolor HSV w CSS?
CSS nie ma funkcji hsv(), ale ma hwb(), w której po odcieniu podajesz ilość bieli i czerni domieszanej do barwy[6]. Model HWB opisał ten sam Alvy Ray Smith w 1996 roku, a z HSV przelicza się go dwoma prostymi wzorami: W = (1 − S) × V oraz B = 1 − V[7].
Dla hsv(217.2, 76%, 96.5%) biel wynosi (1 − 0,76) × 0,965 = 23,1%, a czerń 1 − 0,965 = 3,5%, więc w arkuszu stylów wpiszesz hwb(217.2 23.1% 3.5%). Przeglądarka pokaże ten sam kolor co rgb(59, 130, 246). Jeśli wolisz zapis, który rozumie każde narzędzie, wklej po prostu wynik tego konwertera.
Dlaczego trójka z OpenCV wraca jako trochę inny kolor?
OpenCV zapisuje odcień obrazu 8-bitowego jako połowę kąta, żeby zmieścił się w jednym bajcie[8]. Kolejne wartości odcienia różnią się więc o 2°, a kolor pomiędzy nimi nie ma dokładnego zapisu. Trójka 109, 194, 246, którą OpenCV daje dla rgb(59, 130, 246), wraca przy opcji OpenCV jako rgb(59, 127, 246), czyli z zielonym kanałem niższym o 3. OpenCV zwraca dokładnie to samo: porównaliśmy opcję OpenCV z OpenCV.js 4.10 na wszystkich trójkach z odcieniem od 0 do 180.
Jeśli wynik ma trafić z powrotem do obrazu wczytanego przez cv2.imread, użyj stałej cv2.COLOR_HSV2BGR, bo taki obraz trzyma kanały w kolejności niebieski, zielony, czerwony[9].
Jakie zapisy HSV obsługuje ten konwerter?
| Co wpisujesz | Co pokaże konwerter | Jak to czytamy |
|---|---|---|
| hsv(217.2, 76%, 96.5%) | rgb(59, 130, 246) | Zapis z nawiasem, taki jak wynik konwertera RGB na HSV, przyjmujemy bez zmian. |
| hsb(217.2, 76%, 96.5%) | rgb(59, 130, 246) | Nazwę HSB traktujemy jak HSV, bo to ten sam model. |
| H 217,2 S 76 B 96,5 | rgb(59, 130, 246) | Litery pól z próbnika Photoshopa pomijamy, a przecinek między cyframi czytamy jako dziesiętny. |
| 217,2° 76% 96,5% | rgb(59, 130, 246) | Znak stopnia i procenty przyjmujemy razem z liczbami. |
| 217,2 76 % 96,5 % | rgb(59, 130, 246) | Spację między liczbą a znakiem procentu pomijamy. |
| 0,6034 0,7602 0,9647 | rgb(59, 130, 246) | Trzy ułamki nie większe od 1 poznajemy jako zapis z Pythona i czytamy tak jak przy opcji 0–1. |
| hsva(217.2, 76%, 96.5%, 0.5) | rgba(59, 130, 246, 0.5) | Czwartą liczbę bierzemy jako krycie i przenosimy do wyniku w postaci rgba. |
| [109 194 246] | rgb(59, 127, 246) | Tablicę NumPy wypisaną przez Pythona czytamy przy opcji OpenCV razem z nawiasami. |
| hsv(217.2, 76%, 96.5% | rgb(59, 130, 246) | Brak nawiasu zamykającego to literówka, więc liczby i tak odczytujemy. |
Konwertuj inne jednostki na RGB
Źródła
- HSV (grafika) — Wikipedia
- Wybieranie kolorów w programie Photoshop — Adobe
- Color Gamut Transform Pairs (SIGGRAPH 78) — Alvy Ray Smith
- HSL and HSV — HSV to RGB — Wikipedia (wersja angielska)
- About color models — Figma Help Center
- CSS Color Module Level 4 — HWB Colors: hwb() function — W3C
- HWB — A More Intuitive Hue-Based Color Model — Alvy Ray Smith
- Color conversions: RGB ↔ HSV — OpenCV
- Image file reading and writing: imread — OpenCV
- colorsys — Conversions between color systems — Python Software Foundation
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 HSV na RGB
Co się stanie, gdy wpiszę odcień większy niż 360° albo ujemny?
Konwerter obróci go na kole barw tak jak CSS, więc 480° to to samo co 120°, a −120° to to samo co 240°. hsv(480, 100%, 100%) da zatem zieleń rgb(0, 255, 0).
Dlaczego konwerter nie przyjmuje nasycenia 194?
Przy opcji 0–360°, 0–100% nasycenie i jasność mają najwyżej 100. Liczba większa bez znaku procentu to zwykle skala od 0 do 255 z OpenCV, więc zamiast przyciąć ją po cichu do 100%, konwerter pokazuje komunikat. Przełącz wtedy Zapis HSV na OpenCV (0–179, 0–255).
Czy przy zapisie 0–1 odcień też jest ułamkiem?
Tak. Moduł colorsys w Pythonie podaje wszystkie trzy liczby od 0 do 1[10], więc odcień to ułamek pełnego obrotu. 0,6034 × 360° daje 217,2°.
Jak przeliczyć HSV na kod HEX?
Przelicz zapis tutaj, a potem wklej wynik do konwertera RGB na HEX. Kolor zobaczysz od razu w kwadratowej próbce obok pola, a kliknięcie próbki otworzy systemowy selektor barwy.
Jak przeliczyć RGB na HSV?
Wpisz kanały do konwertera RGB na HSV. Przycisk Zmień kolejność przeniesie Cię tam razem z bieżącym wynikiem.

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