Aracılığıyla paylaş


Bit Eşlem Üst Bilgi Türleri

Bit eşlem dört temel üst bilgi türüne sahiptir:

Dört bit eşlem üst bilgisi türü, yapıların her birinde ilk DWORD olan Boyutu üyesiyle ayırt edilir.

BITMAPV5HEADER yapısı genişletilmiş bir BITMAPV4HEADER yapısıdır ve genişletilmiş bir BITMAPINFOHEADER yapısıdır. Ancak, BITMAPINFOHEADER ve BITMAPCOREHEADER, diğer bit eşlem üst bilgi yapılarıyla ortak olan yalnızca Boyut üyesine sahiptir.

BITMAPCOREHEADER ve BITMAPV4HEADER biçimleri sırasıyla BITMAPINFOHEADER ve BITMAPV5HEADER biçimleriyle değiştirildi. BITMAPCOREHEADER ve BITMAPV4HEADER biçimleri tamlık ve geriye dönük uyumluluk için sunulur.

DIB biçimi aşağıdaki gibidir (daha fazla bilgi için bkz. Bit Eşlem Depolama ):

Renk tablosu, piksel değerlerinin RGB renk değerlerine nasıl karşılık olduğunu açıklar. RGB, ışık yayarak üretilen renkleri açıklamaya yönelik bir modeldir.

Profil verileri profil dosya adını (bağlı profil) veya gerçek profil bitlerini (eklenmiş profil) ifade eder. Dosya biçimi, profil verilerini dosyanın sonuna yerleştirir. Profil verileri, renk tablosunun hemen arkasına yerleştirilir (varsa). Ancak, işlev paketlenmiş bir DIB alırsa, profil verileri dosya biçiminde olduğu gibi bit eşlem bitlerinden sonra gelir.

Profil verileri yalnızca bV5CSType PROFILE_LINKED veya PROFILE_EMBEDDED BITMAPV5HEADER yapıları için mevcut olacaktır. Paketlenmiş DIB'leri alan işlevler için profil verileri bit eşlem verilerinin ardından gelir.

Paletli cihaz, renk atamak için palet kullanan herhangi bir cihazdır. Palettized cihazının klasik örneği, 8 bit renk derinliğinde (yani 256 renkte) çalışan bir ekrandır. Bu moddaki görüntüde, bit eşlemlere renk atamak için küçük bir renk tablosu kullanılır. Bit eşlem içindeki renkler, cihazın kullandığı paletteki en yakın renge atanır. Palettized cihazı bit eşlemi görüntülemek için en uygun paleti oluşturmaz; yalnızca geçerli paletteki her şeyi kullanır. Uygulamalar bir palet oluşturmak ve bunu sisteme seçmekle sorumludur. Genel olarak, 16, 24 ve 32 bit/piksel (bpp) bit eşlemleri renk tabloları (bit eşlem için en uygun paletler) içermez; uygulama, bu durumda en uygun paleti oluşturmakla sorumludur. Ancak, 16, 24 ve 32-bpp bit eşlemler paletli cihazlarda görüntülemek için böyle en uygun renk tablolarını içerebilir; bu durumda uygulamanın bit eşlem dosyasında bulunan renk tablosunu temel alan bir palet oluşturması gerekir.

1, 4 veya 8 bpp olan bit eşlemler, bpp'ye göre en büyük boyuta sahip bir renk tablosuna sahip olmalıdır. 1, 4 ve 8 bpp bit eşlemler için maksimum boyut, bpp'nin gücünde 2'dir. Bu nedenle, 1 bpp bit eşlem en fazla iki renge, 4 bpp bit eşlem en fazla 16 renge ve 8 bpp bit eşlem en fazla 256 renge sahiptir.

16, 24 veya 32 bpp olan bit eşlemler için renk tabloları gerekmez, ancak paletli cihazlar için renkleri belirtmeleri gerekebilir. 16, 24 veya 32 bpp bit eşlem için bir renk tablosu varsa, biClrUsed üyesi renk tablosunun boyutunu belirtir ve renk tablosunda bu kadar çok renk olmalıdır. biClrUsed sıfırsa, renk tablosu yoktur.

BI_BITFIELD bit eşlemleri için kırmızı, yeşil ve mavi bit alanı maskeleri bitmapINFOHEADER, BITMAPV4HEADERve BITMAPV5HEADER yapılarınıhemen izler. BITMAPV4HEADER ve BITMAPV5HEADER yapıları aşağıdaki gibi kırmızı, yeşil ve mavi maskeler için ek üyeler içerir.

Üye Anlam
RedMask Her pikselin kırmızı bileşenini belirten renk maskesi, yalnızca Sıkıştırma üyesi BI_BITFIELDS olarak ayarlandığında geçerlidir.
GreenMask Her pikselin yeşil bileşenini belirten renk maskesi, yalnızca Sıkıştırma üyesi BI_BITFIELDS olarak ayarlandığında geçerlidir.
BlueMask Her pikselin mavi bileşenini belirten renk maskesi, yalnızca Sıkıştırma üyesi BI_BITFIELDS olarak ayarlandığında geçerlidir.

 

BITMAPINFOHEADERbiCompression üyesi BI_BITFIELDS olarak ayarlandığında ve işlev LPBITMAPINFO türünde bir bağımsız değişken aldığında, renk maskeleri hemen üst bilgiyi izler. Varsa renk tablosu renk maskelerini izler. BITMAPCOREHEADER bit eşlemler renk maskelerini desteklemez.

Bit eşlem verileri varsayılan olarak biçiminde alttadır. Alttan yukarı, bit eşlem verilerindeki ilk tarama çizgisinin görüntülenecek son tarama çizgisi olduğu anlamına gelir. Örneğin, 10 piksele 10 piksel bit eşlem verilerinin 0 tarama çizgisinin 0. pikseli, görüntülenen veya yazdırılan görüntünün 9. tarama çizgisinin 0 pikseli olur. Çalışma uzunluğu kodlanmış (RLE) biçimli bit eşlemler ve BITMAPCOREHEADER bit eşlemler yukarıdan aşağıya bit eşlem olamaz. Tarama çizgileri, RLE ile sıkıştırılmış bit eşlemler dışında DWORD hizalanır. Tarama çizgisi genişlikleri için, RLE sıkıştırılmış bit eşlemler dışında dört tarafından eşit olarak bölünmeyecek şekilde bayt cinsinden doldurulmalıdır. Örneğin, 10-10 piksel 24 bpp bit eşlem, her tarama çizgisinin sonunda iki doldurma baytı olur.