Windows bitmap (.bmp)
Microsoft SzabványA 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:
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 4DASCII ÁBRÁZOLÁS: BM
Szabványosítás: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Műszaki specifikációk
| Konténer architektúra | BITMAPFILEHEADER, majd BITMAPINFOHEADER (DIB) és a raszter képponttömbje. |
| Tömörítés | Tömörítetlen nyers rasztersorok vagy választható BI_RLE8 / BI_RLE4 futamhossz-kódolás |
| Bájtsorrend | kis bájtsorrend (Intel x86) |
| Színterek | Eszközfüggő RGB, sRGB (beágyazva a BITMAPV5HEADER-ben) |
| Csatornák és struktúra | 1 bites monokróm, 4/8 bites palettás, 16 bites, 24 bites RGB vagy 32 bites RGBA |
| Max. méretek | 2,147,483,647 x 2,147,483,647 képpont (előjeles, 32 bites egész szám) |
| Átlátszóság | A modern BITMAPV3HEADER és V5HEADER formátumok támogatják a 32 bites BGRA alfamaszkot |
| Streaming és progresszív | Nem 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útum | BMP (Jelenlegi) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Tömörítési mód | Tömörítetlen / minimális RLE | Veszteségmentes Deflate-tömörítés; a fájlméret-csökkenés a kép tartalmától függ | Tömörítetlen / LZW / Zip | Veszteséges DCT (~90%-kal kisebb) |
| Dekódolási sebesség | Azonnali memóriamásolás | Deflate-kitömörítést igényel | LZW/ZIP-kitömörítést igényel | IDCT-számítást igényel |
| Rasztersorok sorrendje | Alulról felfelé (fordított) | Fentről lefelé | Fentről lefelé / Szalagok | Fentről lefelé, MCU-blokkokban |
| Webes alkalmasság | Nagyon gyenge (túlméretezett adatok) | Kiváló grafikákhoz | Gyenge (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
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.
Kapcsolódó BMP konverziós párok
A nem tömörített Windows Bitmap fájlok PNG formátumra való átalakítása veszteségmentes tömörítést biztosít, amely csökkenti a fájlméretet a képminőség romlása nélkül.
A PNG Windows Bitmap formátumba alakítása a tömörített raszteradatokat tömörítetlen képpontráccsá alakítja, régebbi operációs rendszerekhez és hardveres munkafolyamatokhoz.
Helyezzen el egy támogatott BMP képernyőképet egy PDF-oldalon hibajegyhez vagy jelentéshez. Ez az eljárás a tömörítetlen 24 vagy 32 bites képpontokat fogadja el, a tömörített BMP-változatokat nem.