Co to jest format pliku BMP?
.bmp to plik obrazu przechowujący grafikę rastrową, opracowany przez Microsoft (wraz z IBM dla OS/2). Format BMP jest prawie zawsze nieskompresowany, więc obrazy o wysokiej rozdzielczości zapisane jako pliki .bmp są większe niż pliki zapisane w porównywalnych formatach, takich jak PNG lub JPEG. Opcjonalna kompresja RLE (run-length encoding) istnieje, ale jest rzadko używana.
BMP jest w stanie przechowywać obrazy w różnych głębiach kolorów:
- 1-bitowy monochromatyczny (tylko czarny i biały),
- 4-bitowy (16 odrębnych kolorów),
- 8-bitowy (256 odrębnych kolorów),
- 16-bitowy, 24-bitowy lub 32-bitowy kolor (ten ostatni dodaje kanał alfa dla przezroczystości).
Struktura pliku
Każdy plik .bmp posiada sekcję nagłówka, która zawiera informacje o głębi kolorów, rozmiarze pliku i przesunięciu danych pikseli, a następnie tablicę reprezentującą piksele mapy bitowej. Wiersze są przechowywane od dołu do góry i dopełniane do granic 4-bajtowych. Istnieją cztery wersje nagłówka DIB - BITMAPCOREHEADER, BITMAPINFOHEADER, BITMAPV4HEADER oraz BITMAPV5HEADER - z których ostatnia dodaje osadzone profile kolorów ICC.
Bezpieczeństwo
RYZYKO: LOWBMP to czyste dane pikseli bez skryptów czy makr, więc sam format jest niskiego ryzyka. Jedyne zastrzeżenia: historycznie kilka błędów w bibliotekach obrazów pozwalało na złośliwe nagłówki BMP (ogromne deklarowane wymiary, błędne serie RLE) w celu zawieszenia lub przepełnienia parserów, więc dbaj o aktualizację przeglądarki obrazów; unikaj też naszpikowanych reklamami stron typu „darmowy konwerter BMP” - zamiast tego używaj IrfanView, GIMP, ImageMagick lub Squoosh.
Szczegóły formatu
w pigułceProgramy otwierające pliki BMP
Szczegóły techniczne
specyfikacja| Typ MIME | image/bmp (również image/x-bmp, image/x-ms-bmp) |
| Magiczne bajty | 42 4D („BM”) na offsetcie bajtu 0 |
| Kolejność bajtów | Little-endian |
| Kompresja | Zazwyczaj brak (BI_RGB); opcjonalne kodowanie długości serii BI_RLE8 i BI_RLE4; rzadko BI_BITFIELDS, BI_JPEG, BI_PNG |
| Obsługiwane głębie kolorów | 1, 4, 8, 16, 24 lub 32 bity na piksel |
| Przechowywanie wierszy pikseli | Domyślnie od dołu do góry (ostatni wiersz jako pierwszy); ujemna wartość wysokości sygnalizuje kierunek od góry do dołu; każdy wiersz dopełniony do granicy 4-bajtowej |
| Nagłówek pliku | BITMAPFILEHEADER - 14 bajtów; zawiera sygnaturę BM, całkowity rozmiar pliku i przesunięcie danych pikseli |
| Wersje nagłówka DIB | BITMAPCOREHEADER (12 bajtów), BITMAPINFOHEADER (40 bajtów), BITMAPV4HEADER (108 bajtów), BITMAPV5HEADER (124 bajtów); wersja identyfikowana przez DWORD na offsetcie 0x0E |
| Kanał alfa | Obsługiwany w trybie 32-bitowym przez BITMAPV4HEADER i BITMAPV5HEADER; niedostępny w wersji 24-bitowej lub wcześniejszych nagłówkach |
| Maksymalne wymiary obrazu | Do ok. 2,1 miliarda pikseli na bok (32-bitowy podpisany int w BITMAPINFOHEADER); BITMAPCOREHEADER ogranicza do 65 535 px na bok |
| Paleta kolorów | Opcjonalna; do 256 wpisów RGBQUAD używanych w trybach indeksowanych (1, 4, 8 bpp) |
| Profil kolorów ICC | Obsługa osadzonych profili ICC dodana w BITMAPV5HEADER (Windows 98/2000); wcześniejsze nagłówki nie zawierają metadanych przestrzeni kolorów |
| Alternatywne rozszerzenie | .dib (Device Independent Bitmap) - identyczny format, używany zamiennie w systemie Windows |
| Warianty OS/2 | Pliki OS/2 Bitmap Array używają alternatywnych magicznych sygnatur: BA, CI, CP, IC, PT |
| Wydano | 1985-1990 (Windows 1.0/2.0; OS/2 1.x); BITMAPINFOHEADER form with Windows 3.0 (1990) |
| Najnowsza wersja | BITMAPV5HEADER (Windows 98/2000, 1998) - adds ICC color profiles |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | learn.microsoft.com |
Konwersje BMP
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki BMP.