Jak obliczyć rozmiar nieskompresowanego obrazu?
Obraz rastrowy jest siatką pikseli. Jeśli znamy liczbę pikseli oraz liczbę bitów przeznaczonych na każdy piksel, możemy obliczyć ilość pamięci potrzebną do zapisania surowych danych obrazu.
Najpierw mnożymy szerokość przez wysokość, aby otrzymać liczbę pikseli. Następnie mnożymy liczbę pikseli przez głębię bitową bpp.
Aby otrzymać bajty, wynik dzielimy przez 8. Później możemy przeliczyć bajty na KiB lub MiB.
Jeśli potrzebujesz tylko zamiany jednostek B, KB, MB, GB, KiB i MiB, użyj przelicznika rozmiaru pliku.
Przykład: obraz Full HD 1920 × 1080 przy 24 bpp
Obraz Full HD ma 1920 × 1080 = 2 073 600 pikseli. Przy 24 bitach na piksel każdy piksel zajmuje 3 bajty, ponieważ 24 / 8 = 3.
Oznacza to około 5,93 MiB surowych danych pikseli. Plik JPEG tego samego zdjęcia może być znacznie mniejszy, ponieważ wykorzystuje kompresję.
Nie należy więc utożsamiać pamięci obrazu po rozpakowaniu z rozmiarem pliku zapisanym na dysku.
Co oznacza bpp – bity na piksel?
bpp określa, ile bitów przeznaczamy na zakodowanie jednego piksela. Im więcej bitów, tym więcej różnych stanów może przyjąć piksel i tym więcej pamięci potrzeba.
| Głębia | Możliwe stany piksela | Bajty/piksel | Typowy przykład |
|---|---|---|---|
| 1 bpp | 2 | 1/8 B | obraz dwustanowy |
| 4 bpp | 16 | 1/2 B | indeksowana paleta 16 stanów |
| 8 bpp | 256 | 1 B | skala szarości / indeksowana paleta |
| 16 bpp | 65 536 | 2 B | różne formaty 16-bitowe |
| 24 bpp | 16 777 216 | 3 B | RGB po 8 bitów na kanał |
| 32 bpp | 4 294 967 296 stanów | 4 B | np. RGB + 8-bitowy kanał alfa |
Liczba możliwych stanów wynika z zależności 2bpp. Jest to bezpośrednie zastosowanie zasady opisanej w kalkulatorze minimalnej liczby bitów.
Przy 32 bpp w układzie RGBA nie należy mówić o 2³² różnych kolorach RGB: część bitów może kodować przezroczystość. Bezpieczniej mówić o 2³² możliwych stanach całego piksela.
Kanały RGB i RGBA – jak policzyć bity na piksel?
Głębię obrazu można opisać bezpośrednio jako bpp albo przez liczbę kanałów i liczbę bitów przypadających na każdy kanał.
Dla klasycznego RGB mamy 3 kanały: czerwony, zielony i niebieski. Po 8 bitów na kanał daje 3 × 8 = 24 bpp.
RGBA ma dodatkowy kanał alfa opisujący przezroczystość. Przy 8 bitach na kanał otrzymujemy 4 × 8 = 32 bpp.
| Układ | Obliczenie | Głębia |
|---|---|---|
| Gray 8 | 1 × 8 | 8 bpp |
| RGB 8 | 3 × 8 | 24 bpp |
| RGBA 8 | 4 × 8 | 32 bpp |
| RGB 16 | 3 × 16 | 48 bpp |
| RGBA 16 | 4 × 16 | 64 bpp |
MiB a MB – dlaczego wynik może się różnić?
W zadaniach informatycznych często spotyka się dwa sposoby przeliczania jednostek. Jednostki binarne używają potęg 1024, a dziesiętne potęg 1000.
| Jednostka | Wartość |
|---|---|
| 1 KiB | 1024 B |
| 1 MiB | 1 048 576 B |
| 1 KB | 1000 B |
| 1 MB | 1 000 000 B |
Dlatego 6 220 800 bajtów to około 5,93 MiB, ale 6,22 MB. Obie wartości mogą być poprawne, jeśli jasno podano użyty system jednostek.
Kalkulator pokazuje oba warianty, aby wynik był jednoznaczny.
Dlaczego JPEG lub PNG nie ma dokładnie takiego rozmiaru?
Wzór szerokość × wysokość × bpp opisuje surowe dane pikseli. Format pliku może zastosować kompresję, przez co dane na dysku zajmują mniej miejsca. Może także przechowywać nagłówki, paletę, profil koloru, miniaturę albo metadane.
JPEG stosuje kompresję stratną i jego rozmiar silnie zależy od treści obrazu oraz jakości zapisu. PNG używa kompresji bezstratnej, a skuteczność zależy m.in. od powtarzalności danych. Nie istnieje więc jeden prosty wzór, który z samej rozdzielczości i bpp poda dokładny rozmiar dowolnego JPEG lub PNG.
BMP także może zawierać dodatkowe elementy oraz wyrównanie wierszy, dlatego rozmiar całego pliku może różnić się od samej pamięci pikseli.
Ten kalkulator jest przeznaczony do szkolnych zadań o ilości pamięci potrzebnej na nieskompresowany obraz.
Dla ucznia i studenta – jak rozwiązać zadanie o rozmiarze grafiki?
1. Odczytaj szerokość i wysokość w pikselach. Nie myl pikseli z centymetrami ani DPI.
2. Policz liczbę pikseli. Pomnóż szerokość przez wysokość.
3. Ustal głębię bitową. Jeśli podano RGB po 8 bitów na kanał, mamy 3 × 8 = 24 bpp.
4. Pomnóż piksele przez bpp. Otrzymasz liczbę bitów.
5. Podziel przez 8. Otrzymasz bajty.
6. Przelicz jednostkę. Dla MiB dziel przez 1024², dla MB przez 1000².
7. Sprawdź, o co pyta zadanie. „Rozmiar nieskompresowanego obrazu” to nie zawsze „rozmiar pliku JPEG”.
Jeśli zadanie dotyczy fizycznego wydruku i przeliczenia DPI na piksele, przyda się kalkulator DPI/PPI i pikseli.
Pozostałe narzędzia znajdziesz w kategorii Informatyka.
Najczęstsze błędy
- Dodawanie szerokości i wysokości. Liczbę pikseli liczymy przez mnożenie W × H.
- 24 bpp traktowane jako 24 bajty. To 24 bity, czyli 3 bajty na piksel.
- RGB 8-bit jako 8 bpp. Jeżeli każdy z trzech kanałów ma 8 bitów, cały piksel ma 24 bpp.
- Dzielenie przez 1024 przed zamianą bitów na bajty. Najpierw dzielimy bity przez 8.
- Mylenie MiB z MB. MiB używa 1024² B, a MB 1000² B.
- Zakładanie, że JPEG ma rozmiar W × H × bpp. JPEG jest kompresowany.
- Mylenie bpp z DPI. bpp opisuje informację przypisaną do piksela, a DPI/PPI gęstość punktów lub pikseli na jednostkę długości.
Zadania do samodzielnego rozwiązania
Policz wynik samodzielnie, a później kliknij „Pokaż wynik”.
Zadanie 1 – obraz 8 bpp
Obraz ma 800 × 600 px i głębię 8 bpp. Ile surowych danych zajmuje?
800 × 600 = 480 000 pikseli.
480 000 × 8 = 3 840 000 bitów.
3 840 000 / 8 = 480 000 B.
≈ 468,75 KiB.
Zadanie 2 – RGB
Grafika 1024 × 768 px ma RGB po 8 bitów na kanał. Oblicz bpp i pamięć.
RGB: 3 × 8 = 24 bpp = 3 B/piksel.
1024 × 768 = 786 432 piksele.
786 432 × 3 B = 2 359 296 B.
2,25 MiB.
Zadanie 3 – zmiana głębi
Ten sam obraz zapisujemy jako 24 bpp i 48 bpp. Jak zmieni się surowy rozmiar?
48 bpp jest dokładnie dwa razy większą głębią niż 24 bpp.
Liczba pikseli pozostaje taka sama.
Surowa pamięć obrazu podwoi się.
Szybka zależność: 24 bpp = 3 bajty na piksel
To jedna z najwygodniejszych reguł w zadaniach. Dla klasycznego RGB 8+8+8 każdy piksel potrzebuje 3 bajtów. Wystarczy więc policzyć W × H × 3 B.
Dla typowego 32 bpp mamy 4 bajty na piksel, a dla 48 bpp — 6 bajtów na piksel.
Powiązane narzędzia informatyczne
Do zamiany B, KiB, MiB, MB, GB i innych jednostek użyj przelicznika rozmiaru pliku.
Do ustalenia, ile stanów można zakodować daną liczbą bitów, przejdź do kalkulatora minimalnej liczby bitów.
Do operacji AND, OR, XOR, NOT i przesunięć służy kalkulator operacji bitowych.
Jeśli przygotowujesz obraz do fizycznego druku, użyj kalkulatora DPI/PPI i pikseli.
Pełną listę narzędzi znajdziesz w kategorii Informatyka.
Wskazówka od KalkulatorXXL
W szkolnym zadaniu najpierw sprawdź, czy podano bity na piksel, czy bity na kanał. RGB po 8 bitów na kanał oznacza 24 bity na cały piksel.
Dopiero po policzeniu całkowitej liczby bitów przechodź do bajtów i większych jednostek.