Windows bitmap (.bmp)
Microsoft SzabványA Bitmap Image File (BMP) a Microsoft alapvető, eszköztől független rasztergrafikus formátumai közé tartozik, 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őn belüli BMP - PNG konvertáló. Konvertáljon fájlokat azonnal 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ájt-szintű fejléc aláírás (Magic Bytes)
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 REPREZENTÁCIÓ: BM
Szabványosítás: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Műszaki specifikációk
| Konténer architektúra | BITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array |
| Tömörítés | Uncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding |
| Bájtsorrend | Little-Endian (Intel x86 byte order) |
| Színterek | Device Dependent RGB, sRGB (BITMAPV5HEADER embedded) |
| Csatornák és struktúra | 1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA |
| Max. méretek | 2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer) |
| Átlátszóság | 32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats |
| Streaming és progresszív | Non-streamable; scanlines stored upside-down (bottom-up) unless height is negative |
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 (~70%-kal kisebb) | Tömörítetlen / LZW / Zip | Veszteséges DCT (~90%-kal kisebb) |
| Dekódolási sebesség | Azonnali memóriamásolás | Deflate dekompressziót igényel | LZW/ZIP dekompressziót igényel | IDCT számítást igényel |
| Rasztersorok sorrendje | Alulról felfelé (fordított) | Fentről lefelé | Fentről lefelé / Csíkok (Strips) | Fentről lefelé MCU blokkok |
| 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 Image Converter használatával a helyes 32 bites rasztersor-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 pufferméreten 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ű halom (heap) lefoglaláshoz és határokon túli íráshoz vezet.
- Sérült RLE8/RLE4 futáshossz-kódolási (run-length) 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 egyedi fejléc-méretek váltanak ki.
Védekező Legjobb Gyakorlatok:
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.
- Univerzális natív operációsrendszer-támogatás a Windows, Linux és macOS minden verziójában.
- Az egyszerű dekódolási komplexitá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ópia-tömörítések, 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ő grafikai 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 Descartes-féle koordinátarendszer 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 az 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?
Egy BMP fájl PNG formátumba történő konvertálása a File2File.app segítségével jellemzően 60-85%-kal csökkenti a fájlméretet, a vizuális minőség semmilyen romlása nélkül.
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 hordozható hálózati grafika (PNG) Windows Bitmap formátumra való átalakítása a tömörített raszteradatokat tömörítetlen pixelrácssá alakítja a régebbi operációs rendszerek és hardverfolyamatok számára.