Windows bitmap (.bmp)

Microsoft Szabvány

A Bitmap Image File (BMP) a Microsoft alapvető, eszközfüggetlen rasztergrafikai formátuma, amely tömörítetlen vagy RLE-tömörített rasztersorokat (scanline) tárol közvetlen hardveres keretpuffer-kompatibilitással.

BMP konvertálása erre: PNG

Ingyenes, böngészőben használható BMP-konverter PNG formátumba. A fájlokat azonnal konvertálhatja az eszközén.

Vizsgálat és metaadatok

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) BMP fájlokat:

Válasszon ki vagy húzzon ide fájlokat

Privát - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Adatvédelmi garancia hálózati adatátvitel nélkül: 0 bájt került fel külső szerverekre. Minden feldolgozás helyben, a böngésző elkülönített környezetében történt.

Bájtszintű fejlécaláírás (fájlazonosító bájtok)

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) BMP fájlokat:

HEX ALÁÍRÁS (ELTOLÁS 0):

42 4D

ASCII ÁBRÁZOLÁS: BM

Szabványosítás: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

Műszaki specifikációk

Konténer architektúraBITMAPFILEHEADER, majd BITMAPINFOHEADER (DIB) és a raszter képponttömbje.
TömörítésTömörítetlen nyers rasztersorok vagy választható BI_RLE8 / BI_RLE4 futamhossz-kódolás
Bájtsorrendkis bájtsorrend (Intel x86)
SzínterekEszközfüggő RGB, sRGB (beágyazva a BITMAPV5HEADER-ben)
Csatornák és struktúra1 bites monokróm, 4/8 bites palettás, 16 bites, 24 bites RGB vagy 32 bites RGBA
Max. méretek2,147,483,647 x 2,147,483,647 képpont (előjeles, 32 bites egész szám)
ÁtlátszóságA modern BITMAPV3HEADER és V5HEADER formátumok támogatják a 32 bites BGRA alfamaszkot
Streaming és progresszívNem streamelhető; a rasztersorok fejjel lefelé (alulról felfelé) vannak tárolva, kivéve ha a magasság negatív

Műszaki összehasonlító mátrix: BMP vs. versenytársak

Technikai attribútumBMP (Jelenlegi)PNGTIFFJPG
Tömörítési módTömörítetlen / minimális RLEVeszteségmentes Deflate-tömörítés; a fájlméret-csökkenés a kép tartalmától függTömörítetlen / LZW / ZipVeszteséges DCT (~90%-kal kisebb)
Dekódolási sebességAzonnali memóriamásolásDeflate-kitömörítést igényelLZW/ZIP-kitömörítést igényelIDCT-számítást igényel
Rasztersorok sorrendjeAlulról felfelé (fordított)Fentről lefeléFentről lefelé / SzalagokFentről lefelé, MCU-blokkokban
Webes alkalmasságNagyon gyenge (túlméretezett adatok)Kiváló grafikákhozGyenge (kiadványszerkesztés)Kiváló fotózáshoz

Gyakori sérülési módok és hexadecimális helyreállítási útmutató

A kép ferdén megnyírva vagy szögben eltorzulva jelenik meg.

Kiváltó ok: Helytelen sor-kitöltési (padding) számítás (az egyes rasztersorok 4 bájtos határra történő kiegészítésének elmaradása).

Helyreállítás: Kódolja újra a File2File.app Image Converter használatával a helyes 32 bites képsorok közötti lépésköz (stride) kényszerítéséhez.

Biztonsági elemzés és elemző (parser) támadási vektorok

A BMP dekódolók gyakran szenvednek a puffer határain túli olvasástól, amikor a nem megbízható DIB-fejléc méretei alapján foglalnak le puffereket.

Ismert támadási vektorok

  • Egész túlcsordulás a szélesség * magasság * bpp számításban, ami kis méretű heap-memória lefoglalásához és határokon túli íráshoz vezet.
  • Sérült RLE8/RLE4 RLE-futáshossz-kódolási vezérlősorozatok, amelyek memóriába írást okoznak a lefoglalt pufferen túl.
  • Szolgáltatásmegtagadás (DoS) több gigabájtos memóriafoglaláson keresztül, amelyet gondosan összeállított fejlécméretek váltanak ki.

Ajánlott védekezési módszerek: A célmemória lefoglalása előtt szigorúan ellenőrizze a DIB-fejléc szélességének, magasságának és bitmélységének határait.

Történeti háttér és mérföldkövek

1998A Windows 98 bevezeti a BITMAPV5HEADER-t, kiegészítve azt ICC színprofil-kezeléssel és gamma-korrekcióval.
1990A Windows 3.0 egységesíti a BITMAPINFOHEADER DIB-specifikációt az operációs rendszerben.
1987A Windows 2.0-val és az OS/2 1.1-gyel együtt jelenik meg natív raszteres megjelenítési formátumként.

Főbb előnyök

  • Nulla tömörítési romlás: 100%-ban bitpontos képponttárolás tömörítési műtermékek nélkül.
  • A Windows saját BMP-kódekeket tartalmaz, más operációs rendszerekben és alkalmazásokban azonban eltérő a támogatás.
  • Az egyszerű dekódolás ideálissá teszi beágyazott mikrokontrollerekhez és a grafikai programozás oktatásához.

Technikai korlátok és hátrányok

  • Hatalmas fájlméretek a modern entrópiakódolások, például a DEFLATE vagy a Huffman-kódolás hiánya miatt.
  • Nem hatékony webes továbbításhoz vagy mobilhálózati terjesztéshez.
  • A lentről felfelé haladó rasztersor-sorrend függőleges sorfordítást igényel a modern fentről lefelé építkező grafikus feldolgozási folyamatokban.

Érdekes technikai tudnivalók

  • A BMP alapértelmezés szerint fejjel lefelé (alulról felfelé) tárolja a képsorokat az OS/2-ben használt matematikai derékszögű koordináta-rendszer miatt.
  • Ha a BMP fejlécben a magasság értéke negatív számra van állítva, a kép a helyes irányban (fentről lefelé) dekódolódik.
  • A BMP fájl minden egyes rasztersorát nullákkal kell kiegészíteni (kitölteni), hogy 4 bájt többszöröse legyen (32 bites határhoz igazítva).

Gyakran Ismételt Műszaki Kérdések

Miért olyan nagyok a BMP fájlok?

A BMP fájlok nyers, tömörítetlen színértékeket tárolnak minden egyes pixelhez, míg az olyan formátumok, mint a PNG, minőségromlás nélkül tömörítik ezeket az adatokat.

Támogatja a BMP az átlátszóságot?

Igen. A 32 bites BMP fájlok (BITMAPV3HEADER vagy újabb verzió használatával) képesek 8 bites alfa-csatornát tárolni, bár a támogatás a régebbi szoftverekben változó.

Hogyan csökkenthetem egy BMP fájl méretét?

A BMP-fájl PNG-vé alakítása csökkentheti a fájlméretet a képpontértékek megőrzése mellett, de az eredmény a képtartalomtól és a BMP kódolásától függ.