Hosszabbítások | .bmp, .dib,.rle |
---|---|
MIME típus | image/bmp, image/x-bmp, image/x-ms-bmp |
Aláírás | 42 4D( hexa ) |
Fejlesztette | Microsoft |
Formátum típusa | Raszteres kép |
Windows bitmap (néven is ismert rövidítése a Bitmap a BMP , angol, eszköz-független bitmap , vagy DIB), egy méret a bitmap nyitott által kifejlesztett Microsoft és az IBM . Ez az egyik legkönnyebben kifejleszthető és programozáshoz használható képformátum. Szinte minden képnézegető és szerkesztő olvasható. 1990- ben vezették be a Windows 3.0 -val .
A fájl három területre oszlik:
A fájl két részre oszlik, nevezetesen:
Eltolás # (sorszám) | Vágott | Érték |
---|---|---|
0x0000 | 2 bájt | a BMP fájl használatának megfelelő
mágikus szám
|
0x0002 | 4 bájt | a BMP fájl mérete bájtokban |
0x0006 | 2 bájt | a fájlt létrehozó alkalmazás azonosítójának fenntartva |
0x0008 | 2 bájt | a fájlt létrehozó alkalmazás azonosítójának fenntartva |
0x000A | 4 bájt | A eltolás (a kiindulási cím) tartalmának a BMP |
Ide tartozik a fájl bájtban mért mérete, az adatok kezdési helye, a kép pixelenkénti bitjeinek száma, az alkalmazott tömörítés típusa, a paletta színeinek száma, a kép szélessége és magassága. stb.
Az olvasó szoftver három bájtot használ a szín kódolásához (rendszer piros zöld kék , RGB):
A paletta tehát egy ilyen típusú megfelelőségi táblázat:
Megjelenítendő érték | Rgb | |
---|---|---|
0 | R = r0 , B = b0 , V = v0 + 00 bájt | |
... | ||
255 | R = r255 , B = b255 , V = v255 + 00 bájt |
Például egy szürkeárnyalatos képnél (256 árnyalat) a három R, G és B érték megegyezik és 0 és 255 között változik .
A BMP fájl szerkezete ezért a következő lesz:
Ezt a fejléc kiszámításakor figyelembe kell venni. Van 1 és 4 bites BMP formátum is.
A BMP formátum számos variációt támogat, a kívánt színek számától függően . A színmélység az egyes pixelekhez társított bitek száma a szín kódolásához .
Így a BMP képek 2 színben (1 bit ), 16 színben (4 bit), 256 színben (8 bit), 65 536 színben (16 bit) vagy 16,8 millió színben (24 bit) lehetnek.
A 24 bites képek három 8 bites csatornával rendelkeznek a három elsődleges fény (piros, zöld, kék) számára, amelyek mindegyike 256 különböző értéket vehet fel. 256 szürke színű kép egyetlen 8 bites csatornával lehetséges.
A BMP formátum szinte nem létezik a weben : nem rontja le a képet, és általában nem használ tömörítést, ezért nagyon nehéz. Van azonban RLE tömörítés a BMP formátumhoz.
A végső BMP fájl hozzávetőleges méretének kiszámításához szorozza meg a színmélységet (1, 4, 8, 16 vagy 24 bit) a magassággal és a szélességgel pixelben: (Színmélység bitben) × (Magasság pixelben) × (Szélesség pixelben) bit.
Például egy 800 × 600 képpontos (800 képpont széles és 600 képpont magas), 24 bites (16,8 millió szín) kép mérete (800 × 600 × 24) bit vagy 1,44 MB (1, 37 Mio ) vagy 3 ″ ½ nagy sűrűségű hajlékonylemez kapacitása (ilyen képet ezért nem lehet 1,44 Mb méretű hajlékonylemezre rögzíteni, különösen a fájlfoglalási táblázat miatt, amely egy bizonyos helyet foglal el, akárcsak a kép fejlécét).
A legtöbb képformátumtól eltérően a kép képpontjai a kép alsó sorától kezdődően vannak kódolva. Minden sornak (balról jobbra kódolva) mindig 4 bájtnyi bájtot kell elfoglalnia, kivéve, ha a kép tömörítve van . Ha a sornak nincs több 4 bájtos többszöröse, akkor hozzáadjuk FF, 00FFvagy 0000FFminden sor végén.
Ha a kép 24 bites kódolású, akkor minden egyes képpontot egy 24 bites egész szám (RGB), kis endián sorrend kódol, vagyis a három bájt egymás után kódolja a kék, a zöld és a piros szintjét.
Ha a kép kódolása kevesebb, mint 16 bit, akkor minden pixelt indexként kódolnak a színtáblázatban (paletta), ezért az „indexelt kép” elnevezés. Azoknál a képeknél, amelyek a pixeleket 1 bit vagy 4 bit kódolják, vagyis ha több pixelt kódolnak ugyanabban a bájtban, akkor a legjelentősebb bitek a balra legtávolabbi pixelhez kapcsolódnak.
BMP formátum lehetővé teszi a használatát a algoritmus a kompressziós RLE a képek 8 bit (256 szín) és 4 bit (16 szín).
A BMP formátumban a Windows 3.x idején bevezetett RLE-tömörítést azonban csak a Windows 95 támogatta . Ritkán használják, mert csak azokon a képeken hatékony, amelyeknél a szomszédos pixelek többsége azonos színű.
Az elv :