| Képformátumok: BMP és ICO |
|
|
|
| Írta: TFeri.hu | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2009. május 24. vasárnap, 07:53 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. oldal / 2 BMP = BitMaP (Bittérkép)Az egyik legegyszerűbben használható, (valaha) legnépszerűbb pixeles képformátum. Eredeti kifejlesztő: Microsoft. Eredeti alkalmazási területe: Windows legrégebbi verziótól kezdve számtalan más alkalmazás. Másik elnevezése: DIB (Device-independent Bitmap, azaz forrás-független bittérkép) A tömörítetlen BMP fájlokban az egyes információk pixelenként, azaz képpontonként vannak tárolva. Gyakorlatilag minden egyes képpontról csak a szín van eltárolva, mivel nincs is más lényeges adat. Ez a szín lehet 1, 4, 8, 16, 24 vagy 32 bites. Az 1-8 bites tárolás esetén lehetséges a szürke-árnyalatú megjelenítés is. Ugyancsak az 1-8 bites színek esetén maguk pixeleket leíró bájtok nem színt tartalmaznak, hanem egyszerűen csak a BMP fájlben tárolt paletta egyes elemeire mutatnak. A 24 bites megjelenésnél például már minden egyes pixel információját 3 bájt adja meg az RGB-kódoknak megfelelően. A formátum lehetőséget nyújt arra is, hogy a 24 bites tárolás mellett a negyedik (ún. alfa-csatornában) kódolják a 24 bitről 32 bitre konvertáló kódokat, A tömörítetlen formátum óriási hátránya, hogy a mérete hatalmas. A BMP fájlok részletei:
Fájlfejléc részei: (14 bájt)
Bitmap információs fejléc: (40 bájt)Ez tárolja a helyes megjelenéshez szükséges információkat, melyeket az egyes alkalmazások tudnak hasznosítani. Ez a blokk a Windows és az OS/2 számos variánsa által alkalmazott egyéb információt is tartalmaz, bár ezek szükségességéről a vélemények megoszlanak. Valamennyi információ DWORD típusú blokkban van, így a fejléc adatait könnyebb tárolni, illetve az egyes alkalmazások számára a kép helyes méretezését is könnyebb kiszámolni. A különböző variánsok azért is jöttek létre, mert a Microsoft több alkalommal is ezen fejlécet alkalmazta a DIB formátumnál. A fejléc kibővülésének másik oka a visszafelé való kompatibilitás, azaz az újabb program- és BMP-variánsok támogatják a régebbiek megjelenését. Részletesebb információt az alábbi táblázat tartalmaz:
A kompatibilitás miatt a legtöbb verzió használj az idősebb, mára erősen elavult DIB-fejlécet is, bár ezt leginkább az OS/2-ben használták fel, ami felett már erősen elmúlt az idő. A legtöbb értéket előjel nélküli egészként tárolja a rendszer.
A tömörítési mező ($1E-$21) a következő értékeket veheti fel:
Megjegyzés: RLE (Run-length encoding): az egyik legegyszerűbb adattömörítési eljárás, melynek segítségével a kép méretét csökkenteni lehet. Tulajdonképpen sorra veszi az egyes képinformációkat és minden információ előtt kiírja, hogy abból a színből hány pixel következik, amint ezt a lenti példa is mutatja: WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW Ennek tömörítése RLE eljárás segítségével: 12W1B12W3B24W1B14W.
Megjegyzés: a BI_JPEG és a BI_PNG azonosítók csak a nyomtatók számára vannak fenntartva, mivel a képernyős megjelenítés számára ezeket az értékeket nem használja a rendszer. Paletta:A BMP-fájl palettája, ha egyáltalán található a fájlban, mindig a fejléc 3. részében van. A paletta gyakorlatilag simán felsorolja a képben használt színek azonosítóját. A kép minden egyes színét leírja pár bittel (1, 4 vagy 8), amely egyetlen sorként szerepel a paletta táblázatában. Az adott képet megjelenítő alkalmazás számára ezen táblázat jelenti, hogy az egyes képpontot konkrétan milyen színként is kell megjeleníteni a képernyőn. A DIB mindig az RGB modellt használja. Itt az egyes képpontokat mindig a három elsődleges színből keveri ki a rendszer: R = Red = Vörös; G = Green = Zöld és B = Blue = Kék. Minden egyes szín 0-tól 255-ig vehet fel értéket. A paletta bejegyzéseinek száma csak kis mértékben korlátozott, mivel létezik egy elméleti határ (2n), de ezt nem kell teljes mértékben kitölteni, kivétel csak az OS/2 V1 volt, ahol a teljes palettát kellett mindig tárolni. Minden bejegyzés 4 bájtot tartalmaz, kivéve az OS/2 V1 három bájtos bejegyzései. Az első három bájt mindig az RGB-kódot tartalmazza, míg a negyedik bájt nincsen kihasználva, így az mindig 0-t tartalmaz, hacsak egyáltalán nincsen ilyen (OS/2 V1). Mint az előzőekben szó volt róla, a paletta egyáltalán nem használható a 16 bites színmélységű vagy ennél nagyobb képeknél. Bittérkép adatok:Ez a blokk írja le ténylegesen a képet magát képpontról képpontra. A tárolási sorrend kicsit furcsa, mivel az információt a bal alsó saroktól kezdve tárolja, minden egyes sorban balról jobbra megy, majd 1-1 sort emelkedik. Tömörítetlen Windows bittérképet lehet tárolni a felső sortól az alsóig sorba rakva, ha a magasság értéke negatív. Az eredeti DIB formátumnál még csak 4 lehetséges képpontonkénti bitérték volt: 1, 4, 8 és 24. Minden esetben a pixel leírásához használt értéket kiterjesztik 32 bitre (4 bájtra), feltöltve további fel nem használt bitekkel, amelyek nem feltétlenül zérus értékűek. Így sikerül elérni, hogy a következő értékes bejegyzés, azaz képpont-információs csak a következő 4 bájtos blokkban kezdődjön. Ezáltal a kép feldolgozhatósága is nagyban megnő!
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Módosítás dátuma: 2009. június 06. szombat, 12:15 |
| HWSW Informatikai Hírmagazin |
![]() |
|