Wszystkie zagadnienia: Teoria
średni grafikaRGBCMYKgłębia kolorówrozmiar plikumatura rozszerzona z informatyki

Kolor w komputerze: RGB, CMYK, głębia bitowa i rozmiar pliku

Model RGB dla ekranów i CMYK dla druku, zapis koloru szesnastkowo, głębia kolorów jako liczba bitów na piksel i wzór na rozmiar nieskompresowanego obrazu.

01

Opis

RGB to model addytywny, czyli oparty na dodawaniu światła. Trzy składowe – czerwona, zielona i niebieska – świecą z różną intensywnością, a ich suma daje barwę. Wszystkie trzy na maksimum dają biel, wszystkie na zero dają czerń. Tak działa każdy ekran, bo ekran sam emituje światło.

CMYK to model subtraktywny, oparty na odejmowaniu światła. Farba nie świeci – pochłania część widma, a odbija resztę. Składowe to cyjan, magenta, żółty i czarny. Im więcej farby, tym ciemniej: brak farby to biel papieru, komplet składowych to czerń. Czwarta składowa, czarna, jest dodana z praktycznych powodów: zmieszanie trzech pozostałych daje brudny brąz zamiast czystej czerni, a osobny czarny tusz jest tańszy i daje ostrzejszy druk tekstu.

Głębia kolorów to liczba bitów przypadająca na jeden piksel. Im więcej bitów, tym więcej możliwych barw: 1 bit daje 2 kolory, 8 bitów – 256, a 24 bity – ponad 16 milionów. Ta ostatnia wartość to popularny true color, po 8 bitów na każdą składową RGB. Liczbę dostępnych kolorów liczy się jako 2 do potęgi liczby bitów. Działa to też w drugą stronę: żeby zapisać 256 kolorów, potrzeba 8 bitów, bo 2 do potęgi 8 to dokładnie 256.

Stąd wynika wzór na rozmiar obrazu bez kompresji: szerokość razy wysokość razy głębia kolorów. Wynik wychodzi w bitach, więc trzeba go jeszcze podzielić przez 8, żeby dostać bajty – jednostki opisuje hasło bit, bajt i jednostki informacji.

Cztery zasady zamykają temat:

  • RGB dodaje światło, CMYK je odejmuje. Ekran świeci i miesza barwy dodawaniem, farba tylko odbija to, czego nie pochłonęła, więc miesza je odejmowaniem. Stąd bierze się cała reszta różnic między tymi modelami.
  • Głębia bitowa to liczba bitów na piksel, a nie liczba kolorów. Kolorów jest 2 do potęgi głębi: 8 bitów to 256 barw, a nie 8 barw. Te dwie liczby mylą się na maturze najczęściej.
  • Rozmiar liczy się w bitach, a podaje zwykle w bajtach. Szerokość razy wysokość razy głębia daje wynik w bitach; dopiero dzielenie przez 8 daje bajty. Pominięcie tego kroku jest gotowym dystraktorem w teście.
  • Kanał alfa zajmuje miejsce, ale nie dokłada barw. 32-bitowy piksel to 24 bity koloru i 8 bitów przezroczystości – widocznych barw jest tyle samo co przy 24 bitach, a plik rośnie o jedną trzecią.

Sąsiednie tematy: czym obraz z pikseli różni się od opisanego wzorami, tłumaczy grafika rastrowa i wektorowa, a co potrafi konkretny format zapisu – formaty graficzne.

02

Jak to działa

W praktyce kolor RGB zapisuje się trzema liczbami od 0 do 255 albo szesnastkowo, po dwie cyfry na składową. Czerwony to #FF0000, zielony #00FF00, niebieski #0000FF, biały #FFFFFF, czarny #000000. Zamianę par szesnastkowych na liczby opisuje hasło binarny ↔ ósemkowy ↔ szesnastkowy.

Skoro każda składowa ma 256 poziomów, wszystkich kombinacji jest 256 do potęgi trzeciej, czyli 16 777 216 kolorów – i stąd bierze się 24-bitowa głębia.

Ten sam kolor ma dwa równoważne zapisy: #E9967A w arkuszu stylów i rgb(233, 150, 122) w zapisie dziesiętnym. Pierwsza para znaków to zawsze składowa czerwona, druga zielona, trzecia niebieska – kolejność liter w skrócie RGB jest jednocześnie kolejnością par w zapisie.

Policzmy rozmiar obrazu 800 na 600 pikseli w 24-bitowym kolorze:

  • liczba pikseli: 800 razy 600 = 480 000
  • rozmiar w bitach: 480 000 razy 24 = 11 520 000 bitów
  • rozmiar w bajtach: dzielimy przez 8 = 1 440 000 bajtów
  • w kilobajtach: dzielimy przez 1024 = około 1406 KB
  • w megabajtach: dzielimy jeszcze raz przez 1024 = około 1,37 MB

Cała trudność tkwi w konsekwentnym przeliczaniu jednostek. Warto zapisywać każdy krok osobno.

03

Pseudokod

funkcja rozmiar_w_bajtach(szerokosc, wysokosc, bity_na_piksel):
  piksele ← szerokosc * wysokosc
  bity ← piksele * bity_na_piksel
  zwróć bity div 8
04

Wizualizacja

Tabela wejściowa
Dane wejścioweWartość
Zapis koloru w arkuszu stylów#E9967A
Model barwRGB, czyli ekran
Głębia bitowa24 bity na piksel, po 8 na składową
→
Wynik
SkładowaZapis szesnastkowyWartość dziesiętnaUdział maksimum
Czerwona (R)E923391 procent
Zielona (G)9615059 procent
Niebieska (B)7A12248 procent
Razem#E9967Argb(233, 150, 122)24 bity, czyli 3 bajty na 1 piksel
Częsty błądE9 czytane dziesiętnie9 zamiast 233to zapis szesnastkowy, nie dziesiętny
05

Tabela

Głębia bitowa, liczba kolorów i rozmiar obrazu 1280 na 720 pikseli
Głębia (bity na piksel)Liczba kolorówRozmiar w bajtachUwaga
12115 200czarno-biały
24230 400paleta
416460 800paleta
8256921 600bajt na piksel
8 (skala szarości)256 odcieni szarości921 600tyle samo
1665 5361 843 200high color
2416 777 2162 764 800true color
3216 777 216 barw i 256 poziomów alfa3 686 400alfa
24 po kompresji16 777 216mniej niż 2 764 800kompresja
06

Porównanie

CechaRGBCMYK
Zasadadodawanie światłapochłanianie światła
Składoweczerwony, zielony, niebieskicyjan, magenta, żółty, czarny
Maksimum wszystkichbielczerń
Brak wszystkichczerńbiel papieru
Zastosowanieekranydruk, poligrafia
Liczba składowych34
Typowy zapis#RRGGBB albo rgb(r, g, b)procenty czterech farb
Nazwa angielskaadditive model (Red, Green, Blue)subtractive model (Cyan, Magenta, Yellow, Key)
07

Typowe błędy

Plik do druku przygotowany w RGB. Uczeń zaznacza, że plakat lepiej złożyć w RGB, bo „RGB ma więcej kolorów". Zdanie jest fałszywe: drukarka i tak rozłoży barwy na cztery farby, a jaskrawe kolory RGB, których farbą nie da się uzyskać, zostaną przy konwersji przybliżone – wydruk wyjdzie inny, niż wyglądał na ekranie. Reguła jest krótka: co świeci, to RGB; co odbija światło, to CMYK.

Głębia pomylona z liczbą kolorów. „8 bitów na piksel" to nie osiem kolorów, tylko 2 do potęgi 8, czyli 256. W drugą stronę tak samo: 16 kolorów nie wymaga 16 bitów, tylko 4, bo 2 do potęgi 4 to 16. Jeśli w zadaniu pada liczba kolorów, a we wzorze ma stanąć głębia, najpierw zamień jedno na drugie – dopiero potem mnóż przez liczbę pikseli.

Rachunek zrobiony w bitach, odpowiedź zaznaczona w bajtach. Obraz 1280 na 720 pikseli po 24 bity to 22 118 400 bitów i dopiero po podzieleniu przez 8 – 2 764 800 bajtów. Dystraktory w arkuszu z 2018 roku są zbudowane dokładnie na tym potknięciu: 921 600 to sama liczba pikseli (pominięte mnożenie przez głębię), a wartości w kilobajtach i megabajtach nie pasują do żadnego poprawnego przeliczenia tego wyniku. Zawsze dopisuj jednostkę przy każdej linijce rachunku.

Zapis #E9967A czytany jako trzy liczby dziesiętne. Sześć znaków to trzy pary szesnastkowe, a nie liczby „E9", „96" i „7A" w zapisie dziesiętnym ani jedna wielka liczba. Składowa czerwona to E9, czyli 233 – i tylko taka odpowiedź jest w kluczu z czerwca 2023. Gdy w parze pojawia się litera, to sygnał, że zapis na pewno nie jest dziesiętny.

Zapomniany kanał alfa przy 32 bitach. Przy głębi 32 bitów uczeń liczy rozmiar jak dla 24 bitów, bo „barw i tak jest 16 777 216". Barw rzeczywiście tyle samo, ale piksel zajmuje 4 bajty zamiast 3, więc ten sam obraz jest o jedną trzecią większy: 3 686 400 zamiast 2 764 800 bajtów. Do wzoru wstawiasz zawsze pełną głębię, razem z kanałem przezroczystości.

08

Zapamiętaj

  • RGB dodaje światło i służy ekranom; suma wszystkich składowych daje biel.
  • CMYK pochłania światło i służy drukowi; komplet składowych daje czerń, a K pochodzi od słowa black.
  • #FFFFFF to biel, #000000 to czerń, każda para znaków to jedna składowa w zapisie szesnastkowym.
  • Liczba kolorów = 2 do potęgi liczby bitów na piksel; 24 bity = po 8 na składową RGB, czyli 16 777 216 barw.
  • Rozmiar w bitach = szerokość razy wysokość razy głębia kolorów; bity na bajty dzielimy przez 8, bajty na kilobajty przez 1024.
  • 32 bity to 24 bity koloru plus 8 bitów kanału alfa: barw tyle samo, miejsca o jedną trzecią więcej.
  • Wzór dotyczy obrazu bez kompresji – realny plik po kompresji będzie mniejszy.
09

Sprawdź się

Dane do ćwiczenia:

DaneWartość
Rozdzielczość obrazu1280 na 720 pikseli
Głębia bitowa24 bity na piksel
Kolor tła#E9967A
Kompresjabrak

Uzupełnij tabelę – samymi liczbami, bez jednostek i bez spacji:

PytanieOdpowiedź
Ile pikseli ma ten obraz?
Ile bitów zajmuje ten obraz bez kompresji?
Ile bajtów zajmuje ten obraz bez kompresji?
Ile bajtów zajmuje jeden piksel przy głębi 24 bitów?
Ile bajtów zajmowałby ten sam obraz przy głębi 32 bitów?
Ile kolorów koduje głębia 8 bitów?
Ile bitów wystarczy na paletę 16 kolorów?
Ile wynosi dziesiętnie składowa czerwona koloru E9967A?

Barwy na ekranie miesza się w modelu , a plakat oddawany do drukarni składa się w modelu , w którym litera K oznacza kolor czarny.

10

Najczęściej zadawane pytania

Dlaczego kolory na wydruku wyglądają inaczej niż na ekranie?

Bo modele mają różne zakresy odwzorowania barw. Część jaskrawych kolorów RGB jest nieosiągalna dla farb i przy konwersji zostaje przybliżona najbliższym możliwym odcieniem.

Co oznaczają litery w skrócie CMYK?

C to cyan, czyli cyjan, M to magenta, Y to yellow, czyli żółty, a K to black, czyli czarny. Litera K nie pochodzi od słowa „kolor" ani od „contrast" – to skrót od angielskiej nazwy czerni, w poligrafii nazywanej kolorem kluczowym (key).

Co oznacza zapis #FF8800?

Czerwony na maksimum (255), zielony na poziomie 136 i brak niebieskiego – czyli odcień pomarańczowego.

Czym jest kanał alfa?

Dodatkową składową przezroczystości, oznaczaną RGBA. Nie jest barwą, lecz informacją o tym, jak bardzo piksel przepuszcza to, co pod nim. 32-bitowa głębia to zwykle 24 bity koloru plus 8 bitów kanału przezroczystości – liczba widocznych barw pozostaje taka sama jak przy 24 bitach.

Ile bitów potrzeba na 256 kolorów?

Osiem, bo 2 do potęgi 8 daje dokładnie 256. Analogicznie 16 kolorów wymaga 4 bitów, a 2 kolory jednego bitu.

Jak obliczyć rozmiar obrazu bez kompresji?

Pomnóż szerokość przez wysokość i przez głębię bitową – wynik jest w bitach. Podziel go przez 8, żeby dostać bajty, a potem przez 1024, żeby dostać kilobajty. Dla obrazu 1280 na 720 pikseli przy 24 bitach wychodzi 22 118 400 bitów, czyli 2 764 800 bajtów.

Dlaczego prawdziwy plik jest mniejszy niż wynik obliczeń?

Bo formaty zapisu stosują kompresję, a wzór podaje rozmiar surowych danych – tyle zajmowałby obraz zapisany piksel po pikselu.

Przećwicz w zadaniach maturalnych

Do tego hasła nie mamy jeszcze przypisanych pojedynczych zadań. Cały spis zadań maturalnych z tego działu jest tutaj:

Zadania z działu: Teoretyczne

↗

Powiązane zagadnienia