BMP
Bitmap (BMP) | |
Fájlkiterjesztés | .bmp |
Fejlesztő | Microsoft |
Formátum típusa | bináris fájlformátum bittérképes képek tárolására |
BMP – (Bitmap) képek tárolására használt fájlformátum.
Angol szóösszetétel, melynek jelentése bittérkép.
Ugyanerre a formátumra esetlegesen mint DIB (Device Independent Bitmap, eszközfüggetlen bittérkép) is hivatkozhatnak.
Mind a két formátumot a Microsoft dolgozta ki.
A BMP fájlformátum[szerkesztés]
A BMP fájlok három – vagy ha van paletta, négy – elkülöníthető részből szerveződnek:
Fájlfejléc | A fájlra vonatkozó alapvető adatokat tárolja. |
Információs fejléc | Az eltárolt kép jellemzőit írja le (felbontás, színmélység, stb.) |
Paletta (ha van) | Az eltárolt kép által használt színek RGB kódjait sorolja fel. |
Bittérkép | A kép tényleges tárolási helye, ahol képpontról képpontra jegyzik fel azok színeit. |
Fájlfejléc (14 byte)[szerkesztés]
A fejlécben tárolt számok mind növekvő bájtsorrendben (Little-endian) tárolódnak.
Kezdés | Méret | Elnevezés | Leírás |
---|---|---|---|
0 | 2 byte | szignatúra | =19778. A képkezelő alkalmazások ezen két bájt alapján azonosítják be a BMP formátumot. Az első bájton a B (66), a második bájton az M (77) ASCII-kódját helyezik el (bitmap), és ezeknek az átváltásából adódik a 19778-as szám (66+256×77). |
2 | 4 byte | fájlméret | A fájl mérete (bájtban). |
6 | 4 byte | szabad terület | =0. Egyes képszerkesztő, illetve -előállító szoftverek saját bejegyzést helyezhetnek itt el. |
10 | 4 byte | bittérkép kezdőcíme | Megadja, hogy hányadik bájttól kezdődik a bittérkép leírása a fájlon belül (az első bájt sorszáma a 0-s). Ha nincsen paletta, ez mindig 54. |
Információs fejléc (40 byte)[szerkesztés]
Kezdés | Méret | Elnevezés | Leírás |
---|---|---|---|
14 | 4 byte | információs fejléc mérete | Megadja az információs fejléc méretét (=40). |
18 | 4 byte | szélesség | A kép szélessége (pixelben). |
22 | 4 byte | magasság | A kép magassága (pixelben). |
26 | 2 byte | megjelenítés | =1. (A kimeneti perifériára – monitor, nyomtató – vonatkozó állandó érték. Nincsen gyakorlati jelentősége.) |
28 | 2 byte | színmélység | Megadja, hogy a bittérképben hány bit vonatkozik egyetlen képpont színére. Jellemző értékei:
1: 1 bites színindexek (kettő szín); 4: 4 bites színindexek (legfeljebb 16 szín); 8: 8 bites színindexek (legfeljebb 256 szín); 24: 24 bites RGB színkódok (TrueColor, maximálisan 16777216 szín). |
30 | 4 byte | tömörítés | A bittérképen alkalmazott tömörítés típusát jelzi.
0: nincsen tömörítés, 1: 8 bites szakaszhossz-tömörítés (RLE8), 2: 4 bites szakaszhossz-tömörítés (RLE4). A gyakorlatban ezeket szinte soha nem használják, mert legfeljebb 10-15%-os méretcsökkenés érhető el velük. |
34 | 4 byte | bittérkép mérete | =0, ha nincsen tömörítés, különben a bittérkép mérete (bájtban). |
38 | 4 byte | vízszintes felbontás | A kép vízszintes felbontása (pixel/méter-ben); nyomtatásnál praktikus érték. |
42 | 4 byte | függőleges felbontás | A kép függőleges felbontása (pixel/méter-ben); nyomtatásnál praktikus érték. |
46 | 4 byte | paletta-színek | A palettában definiált színek száma (=0, ha nincs paletta). Akkor is 0, ha a paletta színeinek száma egyenlő a maximális színek számával a színindexes formában. |
50 | 4 byte | használt színek | Megadja, hogy a paletta színei közül hányat használ fel a bittérkép. Szinte mindig megegyezik az előbbi értékkel. (És 0 az értéke, ha nincs paletta). |
Paletta (paletta-színek×4 byte)[szerkesztés]
Paletta akkor szerepel a fájlban, ha a színmélység legfeljebb 8 bit/pixel (vagyis ha a bittérkép nem RGB színkódokat, hanem színindexeket tartalmaz).
Ha van paletta, akkor a definiált színek számaszor ismétlődik a következő 4 bájt.
Méret | Elnevezés | Leírás |
---|---|---|
1 byte | kék intenzitás (B) | 0..255 közötti érték |
1 byte | zöld intenzitás (G) | 0..255 közötti érték |
1 byte | piros intenzitás (R) | 0..255 közötti érték |
1 byte | szabad terület | =0. Egyes képszerkesztő, illetve -előállító szoftverek saját bejegyzést helyezhetnek itt el. |
Bittérkép[szerkesztés]
A bittérkép a kép képpontjait sorfolytonosan tárolja, ami alapvetően kétféleképpen történhet.
Ha a színmélység 8, vagy nála kisebb, akkor színindexeket sorol fel, amelyek a paletta színeire mutatnak (a paletta első színe kapja a 0-s indexet). Minden színindex egy képpontot ír le.
Ha a színmélység 24 bites, akkor RGB színkódokat sorol fel, és ilyenkor nincsen a fájlban paletta. Minden (3×8 bites) RGB színkód egy-egy képpontot ír le. Bár a színindexes bittérkép csak kevesebb színt különböztethet meg, mérete jóval kisebb az RGB színkódosénál, hiszen egy képpont nem 24, csak 8, 4, 2 vagy 1 bitet foglal el (természetesen, egy bittérképen belül csak egyféle hosszúságú színindexeket használnak).
A bittérkép további jellemzői:
- Az RGB számhármasokban (mind a bittérképben, mind a palettában) B; G; R a sorrend.
- A kép soronként lentről felfelé haladva tárolódik (vagyis a kép legalsó sora kerül a bittérkép legfelső sorába).
- A bittérképen belül a képnek megfelelő sorokat szükség szerint 0-s bitekkel egészítik ki úgy, hogy minden sorhoz néggyel osztható számú bájt tartozzék.