Bitmapa Windows (.bmp)
Microsoft StandardowyBitmap Image File (BMP) to podstawowy, niezależny od urządzenia format grafiki rastrowej firmy Microsoft, przechowujący nieskompresowane lub skompresowane za pomocą RLE linie skanowania z bezpośrednią kompatybilnością ze sprzętową pamięcią ramki (framebuffer).
Konwertuj BMP na PNG
Darmowy konwerter z BMP na PNG w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.
Inspekcja i metadane
Systemy operacyjne i analizatory plików identyfikują pliki BMP, sprawdzając początkową sekwencję bajtów binarnych:
Podpis nagłówka na poziomie bajtów (Magic Bytes)
Systemy operacyjne i analizatory plików identyfikują pliki BMP, sprawdzając początkową sekwencję bajtów binarnych:
PODPIS HEX (OFFSET 0):
42 4DREPREZENTACJA ASCII: BM
Normalizacja: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Specyfikacja techniczna
| Architektura kontenera | BITMAPFILEHEADER z następujejącym BITMAPINFOHEADER (DIB) oraz tablicą pikseli rastrowych |
| Kompresja | Neskompresowane surowe linie skanowania lub opcjonalne kodowanie długości serii BI_RLE8 / BI_RLE4 |
| Kolejność bajtów (Endianness) | Little-Endian (kolejność bajtów Intel x86) |
| Przestrzenie kolorów | Zależny od urządzenia RGB, sRGB (osadzony w BITMAPV5HEADER) |
| Kanały i struktura | 1-bitowy monochromatyczny, 4-bitowy / 8-bitowy z paletą, 16-bitowy, 24-bitowy RGB lub 32-bitowy RGBA |
| Maks. wymiary | 2 147 483 647 x 2 147 483 647 pikseli (ze znakiem, 32-bitowa liczba całkowita) |
| Przezroczystość | 32-bitowa maska alfa BGRA obsługiwana w nowszych formatach BITMAPV3HEADER i V5HEADER |
| Streaming i progresywne ładowanie | Brak obsługi strumieniowania; linie skanowania zapisywane od dołu do góry (bottom-up), chyba że wysokość jest ujemna |
Techniczna macierz porównawcza: BMP a konkurencja
| Atrybut techniczny | BMP (Bieżący) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Tryb kompresji | Neskompresowany / Minimalne RLE | Bezstratny Deflate (~70% mniejszy) | Neskompresowany / LZW / Zip | Stratny DCT (~90% mniejszy) |
| Prędkość dekodowania | Natychmiastowe kopiowanie pamięci | Wymaga dekompresji Deflate | Wymaga dekompresji LZW/ZIP | Wymaga obliczenia IDCT |
| Kolejność linii skanowania | Od dołu do góry (odwrócona) | Od góry do dołu | Od góry do dołu / Paski | Bloki MCU od góry do dołu |
| Przydatność w sieci Web | Bardzo słaba (nadmuchane pliki) | Doskonała do grafiki | Słaba (do publikacji biurowych) | Doskonała do fotografii |
Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego
Obraz renderuje się przesunięty po przekątnej lub zniekształcony pod kątem.
Główna przyczyna: Nieprawidłowe obliczenie wyrównania wierszy (brak dopełnienia każdej linii skanowania do granicy 4 bajtów).
Odzyskiwanie: Przekoduj ponownie za pomocą konwertera obrazów File2File, aby wymusić prawidłowy 32-bitowy krok linii skanowania.
Analiza bezpieczeństwa i wektory ataku na parser
Dekodery BMP często cierpią na nadmierne odczyty z bufora podczas alokowania buforów na podstawie niezaufanych wymiarów nagłówka DIB.
Znane wektory ataku
- Przepełnienie liczby całkowitej w obliczeniach szerokość * wysokość * głębia kolorów (bpp), prowadzące do małej alokacji stosu i zapisu poza granicami bufora.
- Uszkodzone sekwencje ucieczkowe długości serii RLE8/RLE4 powodujące zapis pamięci poza przydzielonym buforem.
- Atak typu odmowa usługi (DoS) poprzez alokację pamięci rzędu wielu gigabajtów wywołaną spreparowanymi wymiarami nagłówka.
Najlepsze praktyki obronne: Ścisła walidacja granic szerokości, wysokości i głębi bitowej nagłówka DIB przed alokacją pamięci docelowej.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Brak degradacji kompresji: 100% dokładne odwzorowanie pikseli bez jakichkolwiek artefaktów kompresji.
- Uniwersalna, natywna obsługa systemowa we wszystkich wersjach systemów Windows, Linux i macOS.
- Trywialna złożoność dekodowania czyni go idealnym dla wbudowanych mikrokontrolerów oraz edukacji z zakresu programowania grafiki.
Ograniczenia techniczne i wady
- Ogromne rozmiary plików ze względu na brak nowoczesnej kompresji entropowej, takiej jak DEFLATE czy kodowanie Huffmana.
- Nieefektywny w transmisji webowej lub dystrybucji w sieciach mobilnych.
- Kolejność linii skanowania od dołu do góry wymaga pionowego odwracania wierszy w nowoczesnych potokach graficznych typu top-down.
Ciekawe informacje techniczne
- BMP domyślnie przechowuje linie skanowania obrazu do góry nogami (od dołu do góry) ze względu na matematyczny kartezjański układ współrzędnych używany w systemie OS/2.
- Jeśli wartość wysokości w nagłówku BMP zostanie ustawiona na liczbę ujemną, obraz jest dekodowany prawidłowo (od góry do dołu).
- Każda linia skanowania w pliku BMP musi być dopełniona zerami do wielokrotności 4 bajtów (wyrównanie do granicy 32-bitowej).
Często zadawane pytania techniczne
Dlaczego pliki BMP są takie duże?
Pliki BMP przechowują surowe, nieskompresowane wartości kolorów dla każdego pojedynczego piksela, podczas gdy formaty takie jak PNG kompresują te dane bez utraty jakiejkolwiek jakości.
Czy BMP obsługuje przezroczystość?
Tak. 32-bitowe pliki BMP (używające BITMAPV3HEADER lub nowszego) mogą przechowywać 8-bitowy kanał alfa, chociaż obsługa różni się w starszym oprogramowaniu.
Jak mogę zmniejszyć rozmiar pliku BMP?
Konwersja pliku BMP do formatu PNG za pomocą File2File.app zazwyczaj zmniejsza rozmiar pliku o 60% do 85% przy zerowej utracie jakości wizualnej.
Powiązane pary konwersji BMP
Konwersja nieskompresowanych plików Windows Bitmap do formatu PNG zapewnia bezstratną kompresję, która zmniejsza rozmiar plików bez pogarszania jakości obrazu.
Konwersja plików Portable Network Graphics do formatu Windows Bitmap przekształca skompresowane dane rastrowe w nieskompresowaną siatkę pikseli dla starszych systemów operacyjnych i potoków sprzętowych.