RGB jest addytywny i zbudowany ze światła, CMYK jest subtraktywny i zbudowany z farby. Konwersja między nimi to krok, który każdy projekt ekranowy wykonuje przed drukiem.
Jak działa konwersja z RGB na CMYK
- Normalizuj kanały: podziel R, G i B przez 255.
- Weź największy znormalizowany kanał i oblicz key K = 1 − max.
- Wyprowadź cyjan, magentę i żółć, usuwając udział czerni: C = (1 − R − K) / (1 − K) i analogicznie dla pozostałych.
- Konwertuj wszystkie cztery wartości na procenty między 0 a 100.
Przykład działania
To matematyczne przybliżenie bez profilu kolorów. Drukarnie używają profili ICC i limitów tuszu, więc te liczby są solidnym odniesieniem, nie separacją gotową do druku.
Wyjaśnienie RGB i CMYK
Czym jest RGB?
RGB opisuje kolor trzema kanałami światła — czerwonym, zielonym i niebieskim — każdy od 0 do 255. Odwzorowuje to działanie ekranów: wszystkie trzy na 255 dają biały, wszystkie na 0 — czarny. RGB to właściwy wybór, gdy musisz liczyć z kolorem, a rgba() dodaje przezroczystość.
- Składnia:
- rgb(R, G, B)
- Zakres:
- 0–255 na kanał
- Najlepsze do:
- kod, canvas, przezroczystość z rgba()
Czym jest CMYK?
CMYK to model czterech farb używany w druku: cyan, magenta, yellow i key (czarny), każdy jako procent od 0 do 100. Farba odejmuje światło zamiast je emitować, więc CMYK obejmuje mniej kolorów niż ekran — dlatego jaskrawe kolory ekranowe często wyglądają na bardziej stonowane po wydruku.
- Składnia:
- cmyk(C%, M%, Y%, K%)
- Zakres:
- 0–100% na farbę
- Najlepsze do:
- druk, opakowania, pliki gotowe do druku
Tabela odniesienia z RGB na CMYK
Najczęściej używane kolory CSS, skonwertowane z RGB na CMYK.
| Kolor | RGB | CMYK |
|---|---|---|
| black | rgb(0, 0, 0) | cmyk(0%, 0%, 0%, 100%) |
| white | rgb(255, 255, 255) | cmyk(0%, 0%, 0%, 0%) |
| red | rgb(255, 0, 0) | cmyk(0%, 100%, 100%, 0%) |
| lime | rgb(0, 255, 0) | cmyk(100%, 0%, 100%, 0%) |
| blue | rgb(0, 0, 255) | cmyk(100%, 100%, 0%, 0%) |
| yellow | rgb(255, 255, 0) | cmyk(0%, 0%, 100%, 0%) |
| orange | rgb(255, 165, 0) | cmyk(0%, 35%, 100%, 0%) |
| teal | rgb(0, 128, 128) | cmyk(100%, 0%, 0%, 50%) |
| purple | rgb(128, 0, 128) | cmyk(0%, 100%, 0%, 50%) |
| gray | rgb(128, 128, 128) | cmyk(0%, 0%, 0%, 50%) |