BMP (Bitmap), Microsoft ve IBM tarafından birlikte geliştirilen en basit bir görüntü dosya formatıdır. Bu dosya formatı özellikle Windows ve OS/2 platformlarında yaygın kullanılır.
BMP Dosya Formatı Nedir?
BMP dosyası, renkleri gerçek renkler olarak veya dizinlenmiş bir palet kullanarak oluşturulan bir nokta tablosu olarak depolanan piksellere sahip bir bitmap dosyası/grafik görüntü dosyasıdır.
BMP, RGB, Dizine Alınmış Renk, Gri Tonlama ve Bitmap renk modlarını destekler. Dolayısıyla, bir görüntüde Windows veya OS/2 formatını ve kanal başına 32 bitlik bir bit derinliği ayarlanabilir.
Windows formatını kullanan 4 bitlik ve 8 bitlik görüntüler için, ayrıca RLE sıkıştırması yapılandırabilirsiniz.
Bu görüntü formatı, çevresel görüntü cihazından bağımsız bir bitmap elde etmemize izin verecek şekilde tasarlanmıştır. Bitmap’in yapısı dosya başlığı, bilgi başlığı, palet ve resim gövdesinden oluşur.
BMP Dosya Başlığı
Dosya başlığı, dosya türü ve boyutu hakkında ve ayrıca görüntü bilgilerinin gerçekte nerede başladığı hakkında bilgi sağlar ve dört bölümden oluşur.
- İmza, iki karakterli bir BMP dosyası olduğunu belirtir.
- Onaltılık BM, 424D, bunun bir OS/2 bitmap veya CI olduğunu belirten ve bunun bir OS/2 renk simgesi olduğunu veya CP, OS/2 renkli bir işaretçi olduğunu veya IC, bunun bir OS/2 simgesi olduğunu veya PT bunun bir OS/2 işaretçisi olduğunu belirtir.
- 4 baytlık bir ayrılmış bir alana sahiptir.
- 4 baytlık görüntü ofsetine sahiptir. Bu dosyanın başlangıcına göre görüntü bilgilerinin konumunu ayarlar.
BMP Bilgi Başlığı
Bilgi başlığı, görüntü hakkında, özellikle boyutları ve renkleri hakkında bilgi içerir. Bilgi başlığının bayt cinsinden boyutu 4’tür.
Görüntünün genişliği ve yüksekliği 4 bayttır ve düzlemin boyutu 2 bayttır. Renk modelinin derinliği, yani rengi kodlamak için kullanılan bit sayısıdır. Bu değer 1, 4, 8, 16, 24 veya 32’ye eşdeğer olabilir.
Sıkıştırma yöntemi olarak 4 baytlık bir boyut içerir. Bu değer, görüntü sıkıştırılmadığında 0 veya kullanılan sıkıştırma türüne bağlı olarak 1, 2 veya 3’tür.
RLE için 1 piksel kodlama başına 8 bit, RLE için 2 piksel kodlama başına 4 bit, bit alanı kodlaması için 3, yani rengin palet tarafından temsil edilen üçlü bir maske ile kodlandığı anlamına gelir.
Resmin bayt cinsinden toplam boyutu 4 bayttır. Yatay ve dikey çözünürlük metre başına piksel sayısı 4 bayttır.
Paletteki önemli renklerin sayısı 4 bayttır. Tüm renkler önemli olduğunda bu alan 0’a eşit olabilir.
Görüntü Paleti
Görüntü paleti isteğe bağlıdır. Palet tanımlandığında, girişlerin her biri için art arda 4 bayt içerir ve mavi bileşen, yeşil bileşen, kırmızı bileşen ve ayrılmış bir alan içerir.
Görüntü Kodlama
Görüntü kodlama, sol alt pikselden başlayarak her piksele karşılık gelen bitler satır satır yazılarak yapılır.
2 renkli görüntüler piksel başına 1 bit kullanır, yani bir bayt 8 pikseli kodlar. 16 renkli görüntüler piksel başına 4 bit kullanır, bu, bir baytın 2 pikseli kodladığı anlamına gelir.
256 renkli görüntüler piksel başına 8 bit kullanır ve her pikseli kodlamak için bir bayt gerekir.
Gerçek renkli görüntüler piksel başına 24 bit kullanır, bu da her pikseli kodlamak için mavi, yeşil ve kırmızı için değişen renk sırasına göre 3 bayta ihtiyaç duyar.
Görüntüdeki her satır, 4’ün katı olan toplam bayt sayısı içerir. Bu şema karşılanmazsa, satır bilgilerini karşılamak için gerekli tüm 0’larla tamamlanmalıdır.