A 16 színű bmp file szerkezete
4 bit
színmélységgel mentsünk!!
Szerkesztés--> Fájlba másolással
Adott méretű területet mentsünk
"NAGY
MÉRET" nagyítást használjunk
Az állomány felépítése
típus:
2 bájt A BMP típusa (BM)
méret:
4 fizikai
állomány mérete
nem használt:
4 Későbbi
fejlesztéseknek (0000h)
offset:
4 A képpontok adatainak
offsetje:14+(40+64)=118
Információk ( 40 bájt)
méret:
4 bájt (40)
szélesség:
4
A kép szélessége képpontban
magasság:
4
A kép magassága képpontban
sikok
2 (1)
bitszam
2
Színmélység ( 4)
tömörítés:
4 (0)
képméret
4
A képpontok leírására
szolgáló bájtok száma.
NEM MINDIG magasság*szélesség*4 bit/8.
xfelbontás
4 pixel/méter-ben
(3780)
yfelbontás
4 pixel/méter-ben
(3780)
használtszínek
4 (0)
fontosszínek
4 (0)
Ha összeadjuk, akkor megkapjuk valóban a 40
bájtot. (9*4+2*2)
Színtábla (64 bájtos)
Mivel egy síkunk van, egy színtábla van csak. A
tábla 16*4=64 bájtnyi
helyet foglal
Ha egy képpont értéke
5, az akkor azt
jelenti, hogy ezen képpont színe megegyezik a
tábla 5. sorában megadott
színnel
0. sora is van a színtáblának!
Bájtfordított sorrend!
3. A képleíró rész
Sorfolytonosan a balalsó
saroktól kezdve
Nézzük pl. a következő képet: (Itt van BMP állományban...)
Ez
egy 8×8-as kép. Nézzük meg
a forrását bájtonként:
42 4D 96 00 00 00 00 00 00 00 76 00 00 00 28 00 az utolsó a sorban a 16. bájt
00 00 08 00 00 00 08 00 00 00 01 00 04 00 00 00 32.
00 00 20 00 00 00 C4 0E 00 00 C4 0E 00 00 00 00 48.
00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80 64.
00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80 80.
00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF 96.
00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF 112.
00 00 FF FF FF 00 09 99 99 99 90 00 00 09 90 99 128.
99 09 90 99 99 09 90 99 99 09 90 99 99 09 90 00 144.
00 09 99 99 99 99 az utolsó a sorban a 150. bájtA lilával jelzett bájtok alkotják a fájlleíró részt, a narancssárgával jelzettek az információs rész 2.a részét, a zölddel jelzettek az információs rész 2.b részét, azaz a színtáblát. A kékkel jelzettek alkotják magát a képet. Nézzük meg a jelentéseiket:
Bájtok
:Érték, jelentése
42 4D
: "BM", tipusa
96 00 00 00: 150, mérete
00 00 00 00: 0,
fenntartott
76 00 00 00: 118, inf. ebből
Bájtok
:Érték (jelentése)
28 00 00 00: 40, méret
08 00 00 00:
8, magasság
08 00 00 00: 8,
szélesség
01 00 :
1, síkok száma
04 00 :
4, színmélység
00 00 00 00: 0,
tömörítés
fajtája
20 00 00 00: 32,
képpontok által
elfoglalt bájtok száma
C4 0E 00 00:3780, pixel/méter
vízszintes
felbontás
C4 0E 00 00:3780, pixel/méter
vízszintes
felbontás
00 00 00 00: 0,
színek
száma
00 00 00 00: 0,
fontosszínek
száma
Bájtok
:Érték
(jelentése)
A 4. bájt nincs benne a táblázatban, hiszen nem
használjuk Figyeljük
meg a byte-fordított sorrendet!
Bájtok | BLUE/KÉK | GREEN/ZÖLD | RED/PIROS |
00 00 00 00 | 0 | 0 | 0 |
00 00 80 00 | 0 | 0 | 108 |
00 80 00 00 | 0 | 108 | 0 |
00 80 80 00 | 0 | 108 | 108 |
80 00 00 00 | 108 | 0 | 0 |
80 00 80 00 | 108 | 0 | 108 |
80 80 00 00 | 108 | 108 | 0 |
C0 C0 C0 00 | 192 | 192 | 192 |
80 80 80 00 | 108 | 108 | 108 |
00 00 FF 00 | 0 | 0 | 255 |
00 FF 00 00 | 0 | 255 | 0 |
00 FF FF 00 | 0 | 255 | 255 |
FF 00 00 00 | 255 | 0 | 0 |
FF 00 FF 00 | 255 | 0 | 255 |
FF FF 00 00 | 255 | 255 | 0 |
FF FF FF 00 | 255 | 255 | 255 |
A képleíró rész
A bájtokat itt sorfolytonosan írjuk le, hogy látszódjon a kép alakja:
0 9 9 9 9 9 9 9 Egy
sorba 4 bájt került, egy számjegy 4 bitet
reprezentál,
9 0 0 0 0 0 0 9 így
jön ki a 8×8 képpont. A 9-es jelenti a pirosat, a 0 a
9 0 9 9 9 9 0 9 feketét,
mert a színtábla 9. sorában a piros szín
kódja van,
9 0 9 9 9 9 0 9 a
0. sorában pedig a fekete szín kódja.
9 0 9 9 9 9 0 9
9 0 9 9 9 9 0 9
9 0 0 0 0 0 0 9
9 9 9 9 9 9 9 9
9
9 9 9 9 9 9 9
9 0
0 0 0 0 0 9
9 0
9
9 9 9 0
9
9 0
9
9 9 9 0
9
Talán
így láthatóbb
színesben, s a sorokat fordított sorrendben
írva...
9 0
9
9 9 9 0
9
9 0
9
9 9 9 0
9
9 0
0 0 0 0 0 9
0 9 9 9 9 9
9 9
Csak akkor, ha 8-cal
osztható az egysorban lévő képpontok száma,
különben annyi nulla értékű
félbájtot rak utána, hogy osztható legyen.
S itt van
BMP-ben
is
42 4D 9A 00 00 00 00 00 00
00
76 00 00 00 28 00
00 00 07 00 00 00 09 00 00 00
01 00 04 00 00 00
00 00 24 00 00 00 C4 0E 00 00
C4 0E 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 80 00 00 80
00 00 00 80 80 00 80 00 00 00
80 00 80 00 80 80
00 00 C0 C0 C0 00 80 80 80 00
00 00 FF 00 00 FF
00 00 00 FF FF 00 FF 00 00 00
FF 00 FF 00 FF FF
00 00 FF FF FF 00 22
22 22 20 C2 22 22 C0 C2 22
22 C0 2C CC CC 20 2C 22 2C 20
22 C2 C2 20 22 C2
C2 20 22 2C 22 20 22 22 22 20
2 2 2 2 2 2 2 0
Látható, hogy a pirossal
jelzett
nullák nem vesznek részt a képalkotásban
2 2 2 C 2
2 2 0
2 2 C 2
C 2 2 0
2 2 C 2
C 2 2 0
2 C 2
2 2 C 2 0
2 C C C C C
2 0
C 2 2 2 2 2
C 0
C 2 2 2 2 2
C 0
2 2 2 2 2 2 2 0
A fejlécek:
Fájl jellemzok:
tipusa:
BM
fenntartott:
0
merete:
154 bajt
inf.
ebbol:
118 bajt
Kép jellemzok
meret:
40 bajt
magassag:
9 pixel
szelesseg:
7 pixel
osszesen:
63 keppont
sikok:
1 darab
keppontokkent
4 bit
szinek
szama:
16 db
tomoritesi
kod:
0
kepmerete:
36 bajt
vizsz. felb.:
3780 pixel/meter
fugg. felb.:
3780 pixel/meter
hasznalt szinek:
0 db
fontos
szinek:
0 db
maradek 4
bitek
1 db
Megfigyelhető, hogy a képmérete (36 bájt=72 képpont) nem egyezik az igazi mérettel (63 képpont).