Wróć do: Teoria
średni grafikagłębia kolorówrozmiar plikumatura rozszerzona z informatyki

Głębia kolorów i obliczanie rozmiaru pliku

Jak policzyć rozmiar nieskompresowanego obrazu – wzór z rozdzielczości i głębi kolorów oraz zamiana bitów na kilobajty.

01

Opis

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.

02

Jak to działa

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

Na maturze

To jedno z najczęściej powtarzanych obliczeń w całym dziale. Zadanie podaje rozdzielczość i głębię, a prosi o rozmiar w konkretnej jednostce – i punkt przepada najczęściej na przeliczaniu jednostek, nie na samym wzorze.

Bywa też wariant odwrotny: dany rozmiar pliku i rozdzielczość, trzeba wyznaczyć głębię kolorów. Wtedy wzór przekształca się, dzieląc rozmiar w bitach przez liczbę pikseli.

05

Zapamiętaj

  • Liczba kolorów = 2 do potęgi liczby bitów na piksel.
  • Rozmiar w bitach = szerokość razy wysokość razy głębia kolorów.
  • Bity na bajty dzielimy przez 8, bajty na kilobajty przez 1024.
  • Wzór dotyczy obrazu bez kompresji – realny plik JPG będzie mniejszy.
06

Najczęściej zadawane pytania

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.

Dlaczego prawdziwy plik jest mniejszy niż wynik obliczeń?

Bo formaty stosują kompresję. Wzór podaje rozmiar surowych danych – tyle zajmowałby obraz zapisany piksel po pikselu, bez żadnego upakowania.

Co oznacza 32-bitowa głębia?

Zwykle 24 bity koloru plus 8 bitów kanału przezroczystości. Liczba widocznych barw pozostaje taka sama jak przy 24 bitach.

Powiązane zagadnienia