Bitmapa Windows (.bmp)

Microsoft Standardowy

Bitmap 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:

Wybierz lub upuść pliki tutaj

Konwersja w 100% prywatna w przeglądarce - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

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 4D

REPREZENTACJA ASCII: BM

Normalizacja: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

Specyfikacja techniczna

Architektura konteneraBITMAPFILEHEADER z następujejącym BITMAPINFOHEADER (DIB) oraz tablicą pikseli rastrowych
KompresjaNeskompresowane 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ówZależny od urządzenia RGB, sRGB (osadzony w BITMAPV5HEADER)
Kanały i struktura1-bitowy monochromatyczny, 4-bitowy / 8-bitowy z paletą, 16-bitowy, 24-bitowy RGB lub 32-bitowy RGBA
Maks. wymiary2 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 ładowanieBrak 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 technicznyBMP (Bieżący)PNGTIFFJPG
Tryb kompresjiNeskompresowany / Minimalne RLEBezstratny Deflate (~70% mniejszy)Neskompresowany / LZW / ZipStratny DCT (~90% mniejszy)
Prędkość dekodowaniaNatychmiastowe kopiowanie pamięciWymaga dekompresji DeflateWymaga dekompresji LZW/ZIPWymaga obliczenia IDCT
Kolejność linii skanowaniaOd dołu do góry (odwrócona)Od góry do dołuOd góry do dołu / PaskiBloki MCU od góry do dołu
Przydatność w sieci WebBardzo słaba (nadmuchane pliki)Doskonała do grafikiSł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

1998System Windows 98 wprowadza BITMAPV5HEADER, dodając zarządzanie profilami kolorów ICC oraz korekcję gamma.
1990System Windows 3.0 standaryzuje specyfikację DIB BITMAPINFOHEADER w całym systemie operacyjnym.
1987Wprowadzony wraz z systemami Windows 2.0 i OS/2 1.1 jako natywny format rastrowy wyświetlania obrazu.

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.