Skip to main content

Ad Code

BMP Dosyası Nasıl Açılır? - Dosya Uzantısı

BMP dosyası nedir?

.BMP uzantılı dosyalar, bitmap dijital görüntüleri depolamak için kullanılan Bitmap Görüntü dosyalarını temsil eder. Bu görüntüler, grafik bağdaştırıcısından bağımsızdır ve aygıttan bağımsız bit eşlem (DIB) dosya biçimi olarak da adlandırılır. Bu bağımsızlık, dosyayı Microsoft Windows ve Mac gibi birden çok platformda açma amacına hizmet eder. BMP dosya formatı, verileri çeşitli renk derinliklerine sahip hem tek renkli hem de renkli formatta iki boyutlu dijital görüntüler olarak depolayabilir.

BMP Dosya Biçimi Özellikleri

Aygıttan Bağımsız Bit Eşlemler, aygıtlar ve uygulamalar arasında bit eşlem değiş tokuşuna yardımcı olur. Bu dosya biçiminin sürekli gelişimi nedeniyle, başlıklarda yer alan bilgiler Bitmap sürümüne göre farklı olabilir. Tek bir bitmap dosyası, belirli bir sıradaki sabit ve değişken boyutlu yapılardan oluşur.

Bir Bitmap dosyasındaki yapılar aşağıdaki sırayla düzenlenir:

YapıOpsiyonelBoyutAmaç
Dosya BaşlığıHayır14Bitmap görüntü dosyası hakkında genel bilgileri saklamak için
DIB BaşlığıHayırSabit BoyutluBitmap görüntüsü hakkında ayrıntılı bilgileri depolamak ve piksel formatını tanımlamak için
Ekstra Bit MaskeleriEvet12 veya 16 baytPiksel formatını tanımlamak için
Renk PaletiYarı isteğe bağlıDeğişken boyutluBitmap görüntü verileri tarafından kullanılan renkleri tanımlamak için
Gap1EvetDeğişken boyutluYapı hizalaması
Piksel DizisiHayırDeğişken boyutluPiksel formatı, DIB başlığı veya Ekstra bit maskeleri tarafından tanımlanır.
Gap2EvetDeğişken boyutluYapı hizalaması
ICC Renk profiliEvetDeğişken boyutluRenk yönetimi için renk profilini tanımlamak için

Bir bitmap görüntüsü belleğe yüklendiğinde, Windows tarafından GDI API aracılığıyla kullanılan bir DIB yapısı haline gelir. Dosya başlığı bu veri yapısının parçası değildir. Renk ayrıca, açık RGB renk tanımları yerine o anda başvurulan palete dizinler oluşturan 16 bitlik girişlerden oluşabilir. Bunlardan bazılarına, özellikle de başlıklara ayrıntılı olarak bir göz atalım.

Bitmap Dosya Başlığı

Bir Bitmap Dosya Başlığı, dosyayı tanımlamak için kullanılan diğer dosya başlıklarına benzer. BMP dosya formatının farklı varyantları olduğundan, BMP dosya formatının ilk 2 baytı ASCII kodlamasında “B” karakteri ve ardından “M” karakteridir. Tüm tamsayı değerleri, little-endian biçiminde saklanır.

Ofset hexOffset aralığıBoyutAmaç
0002 baytBMP ve DIB dosyasını tanımlamak için kullanılan başlık alanı 0x42 0x4D’dir ve ASCII’deki BM ile aynıdır. Olası değerleri takip edebilir.* BM – Windows 3.1x, 95, NT, … vb. * BA – OS/2 struct bitmap dizisi * CI – OS/2 struct renk simgesi * CP – OS/2 sabit renk işaretçisi * IC – OS/2 yapı simgesi * PT – OS/2 işaretçisi
0224 baytBMP dosyasının bayt cinsinden boyutu
0662 baytAyrılmış; gerçek değer, görüntüyü oluşturan uygulamaya bağlıdır
0882 baytAyrılmış; gerçek değer, görüntüyü oluşturan uygulamaya bağlıdır
0A104 baytBit eşlem görüntü verilerinin (piksel dizisi) bulunabileceği baytın ofseti, yani başlangıç adresi.

DIB başlığı (bitmap bilgi başlığı)

Görüntüyle ilgili ayrıntılı bilgiler bu başlıkta gösterilir. Bu bilgilere göre görüntünün ekranda görüntülenmesi için kullanılacak uygulama belirlenir. Bu tür başlıkların tümü, boyutlarını belirten bir DWORD (32-bit) alanı içerir, böylece bir uygulama, görüntüde kullanılan başlığı kolayca belirleyebilir. Bunun temel nedeni, DIB formatının çeşitli uzantılardan geçmesidir. Listelenen alanlara sahip DIB Başlığı aşağıdadır.

Renk paleti

Bir BMP renk paleti, bir görüntüleme cihazının renk paletindeki her bir rengin RGB yoğunluk değerlerini belirten bir yapılar dizisidir. Bit eşlem verilerindeki her piksel, renk paletinde dizin olarak kullanılan tek bir değeri depolar. Bu dizindeki öğede depolanan renk bilgisi, o pikselin rengini belirtir. Bir bitmap dosyasındaki rengin kullanılabilirliği aşağıdaki gibi değişir:

  • Bir, 4 ve 8 bit – her zaman bir renk paleti içermesi beklenir
  • On altı, 24 ve 32 bit – asla renk paleti içermez
  • On altı ve 32 bit BMP dosyaları – renk paleti yerine bit alanları maske değerleri içerir

Piksel Depolama

Bitmap pikselleri, her satırın boyutunun dolgu ile 4 baytın katına (32 bit DWORD) yuvarlandığı satırlarda paketlenmiş bitler olarak depolanır. Bir görüntünün piksellerini depolamak için gereken toplam bayt miktarı, yalnızca bitlerin sayılmasıyla doğrudan hesaplanamaz. Doldurma söz konusu olduğundan, her satırın boyutunu 4 baytın katına yuvarlama etkisi gereklidir. Satırların uzunluğunu dört baytın katına çıkarmak için satırların sonuna doldurma baytları (zorunlu olarak 0 değil) eklenmelidir. Piksel dizisi belleğe yüklendiğinde, her satır 4’ün katı olan bir bellek adresinde başlamalıdır.

Görüntü aslında piksel dizisinin 32-bit DWORD gösterimi ile tanımlanır. Genellikle pikseller “aşağıdan yukarıya”, sol alt köşeden başlayarak, soldan sağa giderek ve ardından görüntünün aşağıdan yukarıya doğru sıra sıra saklanır. Piksel formatları ve etkileri aşağıda listelenmiştir:

  • Piksel başına 1 bit (1bpp) biçimi, 2 farklı rengi destekler (örneğin: siyah ve beyaz).
  • Piksel başına 2 bit (2bpp) biçimi, 4 farklı rengi destekler ve 1 bayt başına 4 piksel depolar; en soldaki piksel en önemli iki bitte bulunur. Her piksel değeri, 4 renge kadar bir tablonun 2 bitlik bir indeksidir.
  • Piksel başına 4 bit (4bpp) formatı, 16 farklı rengi destekler ve 1 bayt başına 2 piksel depolar; en soldaki piksel daha önemli yarım bayttadır. Her piksel değeri, 16 renge kadar bir tablonun 4 bitlik bir indeksidir.
  • Piksel başına 8 bit (8bpp) biçimi, 256 farklı rengi destekler ve 1 bayt başına 1 piksel depolar. Her bayt, 256 renge kadar bir tablonun indeksidir.
  • Piksel başına 16 bit (16bpp) biçimi, 65536 farklı rengi destekler ve 2 bayt WORD başına 1 piksel depolar. Her WORD, pikselin alfa, kırmızı, yeşil ve mavi örneklerini tanımlayabilir.
  • 24 bit piksel (24bpp) biçimi, 16.777.216 farklı rengi destekler ve 3 bayt başına 1 piksel değeri depolar. Her piksel değeri, pikselin kırmızı, yeşil ve mavi örneklerini tanımlar (RGBAX gösteriminde 8.8.8.0.0). Spesifik olarak, sırayla: mavi, yeşil ve kırmızı (her örnek için 8 bit).
  • Piksel başına 32 bit (32bpp) biçimi, 4.294.967.296 farklı rengi destekler ve 4 bayt DWORD başına 1 piksel depolar. Her DWORD, pikselin alfa, kırmızı, yeşil ve mavi örneklerini tanımlayabilir.

Referanslar

Yorum Gönder

0 Yorumlar