Képformátumok: BMP és ICO Írta: TFeri.hu
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.
1 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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ó
2 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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. H
3 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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
4 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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
5 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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.
6 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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
7 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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
1E
4
A használt Lásd tömörítési a következő eljárás. táblázatot!
22
8 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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ánn lévő színek ). száma vagy 0.
(Alapértelmezés: 2
9 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
32
4
A felhasznált fontos színek száma vagy 0,
amikor minden szín fontos. Általában figyelmen kívül kell
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
10 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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ó
11 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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
12 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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:
WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWW WWWWWWBWWWWWWWWWWWWWW
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.
13 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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 (2 n ), 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.
14 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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.
15 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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 op. 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.
16 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
A Windows ikonfájlokat, formátum sem kiterjesztéssel csökkenteni. az Magukat CorelDraw, Fontos ezt gyökerében Érdekesség, Készítésének alkalmazással Movie egyes aafájlt Gear) XOR megjegyezni, az ikonokra, teszi alapértelmezésben illetve Vista bittérképes ICO található, valamint összefűzni Amenete: hogy érdemes (pl.: ki modernebb fájlokat aés az egyes fejlécébe, Photoshop, így utáni IrfanView hogy ade darabonként az PNG variánst. eltárolni AVI számos alkalmazásokkal előfordulhat, op. addigiaknál aWindows-ok fájlként. „favicon.ico” tömörítést, mint lehetővé rendszerek CorelDraw, is.megfelelő Javasolt program a weblaphoz aztöbb hogy teszi egyes grafikus bár alapértelmezetten megoldás: használja, lehetséges fájl PNG GIMP, formátumot máshová ez azfájlokat kitüntetett utóbbi átlátszóságot, tartozó tömörítéssel, megoldásaival IrfanView), illetve az létre „rejtette nem animált ikont. és összes jelentőséggel megjelenítést kell feltétlenül teszi isEz majd de ikonokat el” így támogatja hozni 256x256-os képesek az szerkeszthetővé, nem aaweblap egy ikon méretét valamilyen szükséges. tartalmazza bírt, is GIF általában tesz ráközelíteni alétrehozni! szerkesztője. 256x256 mivel készítővel le ikont lehetővé. lehet grafikai aA ICO apéldául sem böngésző PNG weblap képméretű (zoomolni) (pl.: az aAND, GIF
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
Könyvtár
azonosítója
[1..n]
Minden tárolt
fájl általános információi.
17 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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)
18 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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.
19 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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
20 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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
CUR
formátumnál: színskálák (kötelezően: 0 vagy 1)
formátumnál: kérdéses (X hotspot)
6
2
21 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
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)
22 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
Színmélység
(bit)
Tömörítés
256x256
32
PNG
48x48
32
nincs
48x48
8
nincs
23 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
48x48
4
nincs
32x32
32
nincs
32x32
8
nincs
32x32
4
24 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
nincs
16x16
32
nincs
16x16
8
nincs
16x16
4
nincs
25 / 26
Képformátumok: BMP és ICO Írta: TFeri.hu
(c) TFeri.hu, 2009.
Felújítva: 2016.
26 / 26