BMP

A Wikipédiából, a szabad enciklopédiából
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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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.