BMP Resim Dosya Yapısı

BM – Windows 3.1x, 95, NT, … Yapısı anlatılmıştır.

BMP dosyası 3 kısımdan oluşur:

1. Dosya Header (Başlık) Kısmı

2. Header (Başlık) Bilgisi Kısmı

3. Veri (Data) Kısmı

SnapCrab_No-0081

Dosya Başlığı (Header)

Toplam 14 Byte’tan oluşur.

İlk 2 Byte dosya imzasını temsil eder.

Sonraki 4 Byte dosyanın boyutunu verir.

Sonraki 2 Byte Uygulamalara özgü ayrılmıştır.

Sonraki 2 Byte Uygulamalara özgü ayrılmıştır.

Sonraki 4 Byte Veri (Data) başlangıç adresini verir.

 

Adres (Offset) Uzunluk Açıklama
0 2 Byte – ASCII Dosya İmzası
BM – Windows 3.1x, 95, NT, …
BA – OS/2 struct Bitmap Array
CI – OS/2 struct Color Icon
CP – OS/2 const Color Pointer
IC – OS/2 struct Icon
PT – OS/2 Pointer
2 4 Byte – uint Dosya Boyutu
6 2 Byte Uygulamalara özgü ayrılmıştır.
8 2 Byte Uygulamalara özgü ayrılmıştır.
10 4 Byte – uint Veri (Data) başlangıç adresi

 

Header (Başlık) Bilgisi

BMP-BM dosyası başlık bilgisi boyutu 40 Byte’tır.

4 Byte Başlık Bilgisi uzunluğunu verir.

4 Byte Resim genişliğini verir. Piksel cinsinden.

4 Byte Resim yüksekliğini verir. Piksel cinsinden.

2 Byte Color Planes (Renk düzlemini verir) Değeri 1’dir.

2 Byte Renk derinliğini verir. 24, 32

4 Byte Sıkıştırma metodunu verir.

4 Byte Resim Boyutunu verir. Raw Bitmap veri boyutudur.

4 Byte Resmin yatay çözünürlüğü.

4 Byte Resmin dikey çözünürlüğü.

4 Byte Renk Sayısı.

4 Byte Kullanılan önemli renklerin sayısı. Genellikle göz ardı edilir.

 

Adres (Offset) Uzunluk Açıklama
14 4 Byte – uint Başlık (Header) Bilgisi Uzunluğu
18 4 Byte – int Resim Genişliği
22 4 Byte – int Resim Yüksekliği
26 2 Byte – ushort Color Planes (Renk düzlemini verir) Değeri 1
28 2 Byte – ushort Renk Derinliği
1-Bit
4-Bit
8-Bit
16-Bit
24-Bit
32-Bit
30 4 Byte – uint Sıkıştırma Metodu
0 – Sıkıştırma Yok
1 – 8-Bit RLE (Run Length Encoding) Sıkışrması
2 – 4-Bit RLE (Run Length Encoding) Sıkışrması
34 4 Byte – uint Raw Bitmap veri boyutu
38 4 Byte – int Yatay Çözünürlük
42 4 Byte – int Dikey Çözünürlük
46 4 Byte – uint Renk Sayısı
50 4 Byte – uint Kullanılan önemli renklerin sayısı.

 

Veri (Data)

1-Bit için 2 renk vardır. Bunlar Siyah ve Beyazdır.

2-Bit için 4 renk vardır. 1 Byte’ta 4 piksel saklanır.

4-Bit için 16 renk vardır. 1 Byte’ta 2 piksel saklanır.

8-bit için 255 renk vardır. 1 Byte’ta 1 piksel saklanır.

16-bit için 65536 renk vardır. 2 Byte’ta 1 piksel saklanır.

24-bit için 16,777,216 renk vardır. 3 Byte’ta 1 piksel saklanır.

32-Bit için 4,294,967,296 renk vardır. 4 Byte’ta 1 piksel saklanır.

 

Renk paleti için RGB kullanılır. Kırmızı, Yeşil ve Mavi ana renk karışımlarından oluşur.

 

8-Bit için;

İlk 3 bit Kırmızı renk değerini, sonraki 3 bit yeşil renk değerini, kalan 2 bit ise mavi renk değerini tutar.

KKKYYYMM

 

24-Bit için;

1. Byte Mavi değerini tutar.

2. Byte Yeşil değerini tutar.

3. Byte Kırmızı değerini tutar.

 

32-Bit için;

1. Byte Mavi değerini tutar.

2. Byte Yeşil değerini tutar.

3. Byte Kırmızı değerini tutar.

4. Byte Alpha değerini tutar.

 

İlk veri pikseli en sondan (Y-1) ve soldan (0) başlar. Sağa doğru genişlik kadar (G-1), sonra bir yukarı (Y-2), sonra genişlik kadar (G-1) sağa devam eder.

SnapCrab_No-0082

 

Kaynak
http://en.wikipedia.org/wiki/BMP_file_format

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.