Nyomtatás

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ájlban 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 (10 bájt): Alapadatok

  • Bitmap információs fájlfejléc (40 bájt): A kép alapvető jellemzői

  • Paletta – nem kötelező (paletta-színek száma * 4 bájt): a tárolt RGB-kódok

  • Bittérkép adatok (sok-sok bájt): A kép tényleges helye.

 

Fájlfejléc részei: (14 bájt)

Kezdés

Méret (bájt)

Leírás

0

2

Azonosító (hexadecimális) szám:

B (66) és M (77) => BMP a Windows rendszerekben

BA: OS/2 Bitmap kép

CI: OS/2 színes ikon

CP: OS/2 színes mutató

IC: OS/2 ikon

PT: OS/2 mutató

2

4

Fájlméret (bájtban)

6

2*2

Szabad terület, de egyes képszerkesztő programok használhatják.

10

4

A bittérkép kezdőcíme (eltolási érték). Gyakorlatilag azt mutatja meg, hogy hol kezdődik maga a kép. Ha nincsen paletta, akkor ez az érték: 54.

 

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:

 

Méret

Fejléc

Azonosító

Támogatott grafikus megjelenés

40

Windows V3

BITMAPINFOHEADER

Minden 3.0 feletti Windows verzió

12

OS/2 V1

BITMAPCOREHEADER

OS/2, valamint 3.0 és minden e feletti Windows verzió

64

OS/2 V2

 

 

108

Windows V4

BITMAPV4HEADER

95/NT4 és minden feletti Windows verzió

124

Windows V5

BITMAPV5HEADER

98/2000 és minden feletti Windows verzió

 

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.

 

Eltolás (hexadecimális)

Méret (byte)

Leírás

0E

4

A fejléc ezen részének mérete (40 bájt)

12

4

Kép szélessége képpontban

16

4

Kép magassága képpontban

1A

2

Használni kívánt színek száma. Értéke kötelezően: 1.

1C

2

Képpontonként használt bitek száma, ami a kép színmélységét írja le. Jellemző értékei: 1, 4, 8, 16, 24 és 32.

1E

4

A használt tömörítési eljárás. Lásd a következő táblázatot!

22

4

A kép mérete. Ez a nyers bittérképes adat és nem szabad összekeverni a kép valódi méretével.

26

4

A kép vízszintes felbontása (képpont méterenként)

2A

4

A kép függőleges felbontása (képpont méterenként)

2E

4

A palettán lévő színek száma vagy 0. (Alapértelmezés: 2n).

32

4

A felhasznált fontos színek száma vagy 0, amikor minden szín fontos. Általában figyelmen kívül kell hagyni.

 

A tömörítési mező ($1E-$21) a következő értékeket veheti fel:

 

Érték

Azonosító

Tömörítési eljárás

Megjegyzés

0

BI_RGB

nincs

Leggyakoribb érték

1

BI_RLE8

RLE 8bit/képpont

Csak 8 bit/képpontos színmélységnél használható

2

BI_RLE4

RLE 4bit/képpont

Csak 4 bit/képpontos színmélységnél használható

3

BI_BITFIELDS

Bittérkép

Csak 16 és 32 bit/képpontos színmélységnél használható.

4

BI_JPEG

JPEG

JPEG kép.

5

BI_PNG

PNG

PNG kép.

 

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ő!

  • Egy-bites színmélységnél (fekete-fehér képek) az értéket minden bitben tárolják. A legfontosabb bit a legelső, ahol a tényleges színérték tárolódik.

  • 4 bites színmélységnél (16 szín) 2 képpontot tárolnak 1 bájtban. Minden egyes színinformáció a palettára való utalást jelent.

  • 8 bites színmélységnél (256 szín) minden képpont 1 bájton tárolódik. Minden egyes bájt a paletta egy-egy sorára történő bejegyzést tartalmaz.

  • RGB-színeknél (24 bites színmélység) a képpontokat a hagyományos RGB-színskála szerint tárolják le: minden egyes képpont szín-információját 3 bájt tárolja.


 

ICO = Windows Ikon fájl

Ez az a fájlformátum, amit gyakorlatilag minden Windows-alkalmazó ismer, hiszen ezek a kis rajzocskák (olykor képek) mutatják az adott fájl típusát, illetve a felhasznált programra jellemző grafikát. Nagyfokú rokonságot mutat a CUR formátummal, amely az egérkurzor megjelenéséért felelős. Különbségük mindössze az azonosító bájtban és a fejléc bizonyos részeiben van.

Az ICO fájlok egy vagy több képet tartalmaznak, akár többféle méretben, illetve színmélységben is.

Az IANA által hivatalosan regisztrált típusazonosító(MIME): image/vnd.microsoft.icon. Ezen bejegyzés előtt más variánsok is voltak, például: image/x-icon. További variánsok: image/ico, image/icon, text/ico, és application/ico. Sok alkalmazás és számos webszerveren nem jelent meg helyesen az ilyen típusú fájl, így helyettük az alapértelmezett text/html, illetve text/plain jelenik meg.

Ico

A régebbi Windows verziók eredetileg 32x32-es méretű, 16 színű ikonfájlokat jelenítettek meg. A Windows XP megjelenése óta 1x1-től 255x255-ös méretig bármekkora ikonfájlokat meg lehet jeleníteni, beleértve a nem-négyzet alakúakat is. Színmélység lehet:4, 8, 16 vagy 24 bit egyaránt. Általában egy ICO fájl egyaránt tartalmaz egy 16x16-os „kisméretű” és egy 32x32-es „nagyméretű” variánst, így a Windows Intézőben, illetve a Start menüben a megfelelő beállításokkal mindkét variáns megjeleníthető.

Maga az ikon képfájl mindig 2 bittérképet tartalmaz: egy AND (ÉS), illetve egy XOR (kizáró vagy) variánst. Az AND bittérkép 1 bit/képpont méretű és csupán azt írja le, hogy a kép mely területeire vetődik árnyék. A másik, XOR bittérkép csak ezután alkalmazza a (nevét adó) XOR műveletet. Ez nemcsak az átlátszó területeket teszi lehetővé, hanem például a háttér megfordítását és egyéb megjelenítési effektusokat is.

A Windows XP-től fogva minden operációs rendszer támogatja a 32 bites színmélységű képeket, beleértve ebbe az átlátszóságot is, valamint az árnyékot és a lekerekített széleket. Bár az interneten nem mindig jelennek meg a 32 bites képek, ezért a régebbi Windows-ok a 32 bites megjelenést leegyszerűsítik 24 bitesre, mivel így az összes kép egyszerűen megjeleníthető; de az újabbaknál ez már nem probléma. Az 1.0-ás Windows már támogatta a 32x32-es monokróm ikonokat, ám a 16 színű verzió is már a 3.0-tól támogatott. Bár a Windows XP képes volt a 96x96-os ICO fájlok megjelenítésére is, de maga Microsoft ajánlása szerint is legfeljebb 48x48-as kép használata volt ajánlatos.

ICO minta

A Windows Vista és utáni operációs rendszerek alapértelmezetten is támogatja a 256x256 képméretű ikonfájlokat, valamint a PNG tömörítést, bár ez utóbbi nem feltétlenül szükséges. A PNG formátum alapértelmezésben lehetővé teszi az átlátszóságot, de nem tartalmazza sem az AND, sem a XOR bittérképes variánst. Javasolt megoldás: az összes 256x256-os ikont ICO kiterjesztéssel érdemes eltárolni megfelelő PNG tömörítéssel, így a méretét le lehet csökkenteni. A modernebb Windows-ok grafikus megoldásaival képesek ráközelíteni (zoomolni) az egyes ikonokra, így az addigiaknál több formátumot és megjelenítést tesz lehetővé.

Magukat az ICO fájlokat számos program használja, illetve teszi szerkeszthetővé, például a CorelDraw, illetve az IrfanView is.

Fontos megjegyezni, hogy a „favicon.ico” fájl kitüntetett jelentőséggel bírt, mivel a böngésző ezt a fájlt teszi ki a fejlécébe, mint a weblaphoz tartozó ikont. Ez az ikon általában a weblap gyökerében található, de előfordulhat, hogy máshová "rejtette el" a weblap szerkesztője.

Érdekesség, hogy egyes alkalmazásokkal lehetséges animált ikonokat is létrehozni! Készítésének legegyszerűbb menete: darabonként az egyes fájlokat létre kell hozni valamilyen grafikai alkalmazással (pl.: Photoshop, CorelDraw, GIMP, IrfanView), majd egy GIF készítővel (pl.: GIF Movie Gear) összefűzni AVI fájlként. Másik lehetőségként rá lehet keresni direkt animált GIF készítő oldalakra. Ilyen pl. a https://ezgif.com/maker is, ahol fel kell tölteni az egymás utáni állapotokat, majd az oldal ezt összefűzi.

 

Könyvtár és fájlszerkezet:

Maga az ICO fájl egy hagyományos eljárással csomagolt ikonkönyvtár, tipikusan „New Executable” (Windows alatti futtatható) típussal és ICL kiterjesztéssel látják el. Tartalma lényegében csak az ikonok különböző variánsaira korlátozódik. A fájlszerkezet rövid formában:

 

Ikon fejléc

Az ICO típus azonosítója

Könyvtár [1..n]

Minden tárolt fájl általános információi.

1. ikon

Az első tárolt fájl információi AND/XOR bittérképes formában

(régi DIB verzió) vagy az új PNG eljárás szerint.

...

További ikonok.

n. ikon

Az utolsó tárolt ikonfájl.

 

Fejléc részletei:

Eltolás:

Méret (bájt)

Leírás

0

2

Fenntartva. Mindig 0.

2

2

Típusleírás. 1: ICO (ikon fájlok); 2: CUR (kurzor fájlok)

4

2

Számláló. A beépített képek száma.

 

Könyvtár:

Eltolás:

Méret (bájt)

Leírás

0

1

Szélesség képpontban. 0 jelentése: 256 pixel.

1

1

Magasság képpontban. 0 jelentése: 256 pixel.

2

1

Színek száma. 0 jelentése: több, mint 256 szín.

3

1

Fenntartott. Mindig 0. (Gyakorlatban a .NET alkalmazásoknál ez lehet 255 is.)

4

2

ICO formátumnál: színskálák (kötelezően: 0 vagy 1)

CUR formátumnál: kérdéses (X hotspot)

6

2

ICO: képpontonkénti bitek száma

CUR formátumnál: kérdéses (Y hotspot)

8

4

A bittérkép mérete bájtokban.

12

4

Eltolási érték a bittérképes adatfájlban

Windows Vista és feletti felhasználók számára ajánlott ikonméretek: (Más méretek is lehetségesek, de ezeket ajánlja használatra a Microsoft)

Méret (képpont)

Színmélység (bit)

Tömörítés

256x256

32

PNG

48x48

32

nincs

48x48

8

nincs

48x48

4

nincs

32x32

32

nincs

32x32

8

nincs

32x32

4

nincs

16x16

32

nincs

16x16

8

nincs

16x16

4

nincs

© TFeri.hu, 2009

Felújítva: 2016. és 2020.