Bedava forum kurmaya hazir misin ? | ©phpBB | Bedava yardımlaşma forumu | Suistimalı göstermek | Yetkinblog.com
ForumAlem

ForumAlem
 
AnasayfaAnasayfa  SSSSSS  AramaArama  Üye ListesiÜye Listesi  Kullanıcı GruplarıKullanıcı Grupları  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

Paylaş | 
 

 Pascal BMP Grafik Formati

Önceki başlık Sonraki başlık Aşağa gitmek 
YazarMesaj
ToPrAk
Admin
Admin
avatar

Mesaj Sayısı : 457
Kayıt tarihi : 05/08/08
Yaş : 28
Nerden : KONYA

MesajKonu: Pascal BMP Grafik Formati   Cuma Ağus. 08, 2008 6:11 pm

BMP Grafik Formati BMP dosya sistemi hem OS/2 hem de Windows ortamı için resim (imaj) kaydetmek için tasarlanmıştır. Bu bölümde sadece Windows ortamı için BMP dosya biçimi anlatılacaktır.BMP dosyalar temel olarak üç kısımdan oluşur.
1. Header (Başlık)
2. Renk tablosu (24 bitlik dosyalarda olmaz)
3. Görüntüyü içeren veri kısmı

1. Header (Başlık) :

BMP Header

OffsetUzunlukAçıklama02ASCII "BM"24Dosya uzunluğu64Ayrılmış104Görüntü verisinin dosya içinden nereden başladığı144Başlığın bu kısımdan itibaren uzunluğu184Piksel olarak görüntünün genişliği224Piksel olarak görüntünün yüksekliği262Renk tabakalarının sayısı(1 olmak zorunda)282Piksel başına bit sayısı(1, 4, 8 veya 24)304Sıkıştırma yöntemi344Sıkıştırılmış görüntünün uzunluğu384Yatay çözünürlük (Piksel / metre)424Dikey çözünürlük (Piksel / metre)464Kullanılan renk sayısı504Önemli renklerin sayısı544 x NRenk haritası????Görüntü dataları

BMP dosyanın başlığında, görüntü hakkında istediğiniz her türlü bilgiyi bulabilirsiniz. İlk iki byte her zaman için "BM" karakterlerini içerir. Bir dosyanın BMP olup olmadığını anlamak için ilk iki karakteri okuyup, bu iki karakterin "BM" olup olmadığını kontrol etmek yeterlidir. Sonraki 4 byte dosya uzunluğunu verir. Fakat bazı programlar bu dosya uzunluğunu her zaman yazmamaktadır. Bu sebeple bu bilgiye tam olarak güvenmek doğru değildir. Offset 10'daki bilgi bize görüntü verisinin dosyada nereden başladığını gösterir.

Offset 14'e kadar olan kısım hem Windows hem de OS/2 için aynıdır. Bundan sonraki kısım ise değişiktir. Windows için bu kısımdan sonra 40 byte'lık bilgi daha vardır. OS/2'de ise bu bilgi sadece 12 byte' tır. Bu nedenden dolayı Offset 14'te, Windows için hazırlanan BMP' için 40, OS/2 için hazırlanan BMP' için 12 bilgisi bulunur.

Offset 18. ve 22. sırasıyla görüntünün X ve Y uzunluklarını piksel cinsinden büyüklüğünü içerir. Offset 26 ise yüzey sayısını içerir ve değeri 1'dir. Bundan sonraki iki byte ise piksel başına kullanılan bit sayısını gösterir ve 1, 4, 8 ve 24 değerlerinden birini içerir. Bu bilgi sayesinde BMP dosyasının kaç renkli olduğunu anlayabiliriz. 1, 4, 8 , 24 değerlerine bağlı olarak sırasıyla resim 2, 16, 256 ve 16 milyon renklidir.

Offset 30 sıkıştırma tipini içerir. BMP dosyalarda birkaç tip RLE sıkıştırma algoritması kullanılır. Bu algoritmalar çok verimli olmadığından çoğunlukla kullanılmaz.

Offset 30 Sıkıştırma Tipi

DeğeriAnlamı0Hiçbir sıkıştırma yok18 bitlik resimler için sıkıştırma24 bitlik resimler için sıkıştırma

Offset 46 ve 50, sırasıyla kullanılan renk sayısını ve önemli renk sayısını belirtir. Bunlar sıfır oldukları zaman tüm renklerin kullanıldığı ve hepsinin önemli olduğu varsayılır.

2. Renk Tablosu :

RenkTablosu1.RenkMavi Yeşil Kırmızı Ayrılmış2.RenkMavi Yeşil Kırmızı Ayrılmış....Mavi Yeşil Kırmızı Ayrılmışn.RenkMavi Yeşil Kırmızı Ayrılmış

Başlık kısmından sonra renk haritası gelir. Bu harita VGA renk tablosunun içeriğine yazılacak renk bilgilerini içerir. Her renk bu haritada 4 byte'lık yer kaplar. Bu 4 byte'lık bilginin ilk üçü sırasıyla rengin mavi, yeşil ve kırmızı (ters sırada) bileşenlerine karşılık gelir. Sonuncusu ise kullanılmaz. Renklerin bileşenleri saklanırken 0-255 arası değerler kullanıldığından VGA renk tablosunun içeriğine bu değerler 4'e bölünerek yazılmalıdır.

3. Görüntü Verisi :

Renk haritasından sonra görüntüyü içeren veri kısmı bulunur. Bu veri kısmı ters kaydedilmiştir. Yani okuyacağımız ilk veri görüntünün en alt sol köşesine aittir. Görüntü kaydedilirken yatayda soldan sağa dikeyde ise aşağıdan yukarıya taranarak kaydedilmiştir. 256 renkli görüntülerde her piksel 8 bit, 16 renkli görüntülerde ise her piksel 4 bit'lik yer kaplar.

Diğer önemli bir nokta ise tüm satır bilgilerinin 4 byte'ın katı şeklinde kaydedilmesidir. Fazlalık kaydedilen byte'lar ise önemsizdir.

Örneğin 256 renkli ve 193x200 boyutlarında bir resim için her satırdaki byte sayısı 4'ün katı olması gerektiğinden (193'ten büyük 4'e tam bölünebilen ilk sayı) 196 byte uzunluğunda olması gerekir.

Eğer 16 renkli 193x200 boyutlarında bir resim olsaydı 193 pikseli tanımlamak için, 193 / 2 = 96.5 'ten büyük 4'e bölünen ilk sayı yani 100 byte kullanılır. Bu ise kaydedilen resim genişliğinin 8 katıdıR
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör
 
Pascal BMP Grafik Formati
Önceki başlık Sonraki başlık Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
ForumAlem :: Programlama Dilleri :: PascaL-
Buraya geçin: