Aracılığıyla paylaş


Bit Eşlemleri Device-Dependent

Cihaza bağımlı bit eşlemler (DDB) tek bir yapı, BIT EŞLEM yapısı kullanılarak açıklanır. Bu yapının üyeleri dikdörtgen bir bölgenin genişliğini ve yüksekliğini piksel cinsinden belirtir; cihaz paletinden piksellere girişleri eşleyen dizinin genişliği; ve piksel başına renk düzlemleri ve bitler açısından cihazın renk biçimi. Uygulama, GetDeviceCaps işlevini çağırıp uygun sabitleri belirterek cihazın renk biçimini alabilir. DDB'nin renk değerleri içermediğini unutmayın; bunun yerine, renkler cihaza bağımlı bir biçimdedir. Daha fazla bilgi için bkz. Bit EşlemlerRenk. Her cihazın kendi renk kümesi olabileceğinden, bir cihaz için oluşturulan bir DDB farklı bir cihazda iyi görüntülenmeyebilir.

DDB'yi bir cihaz bağlamında kullanmak için bu cihaz bağlamının renk düzenlemesine sahip olması gerekir. Bu nedenle, DDB genellikle uyumlu bit eşlem olarak adlandırılır ve genellikle DIB'den daha iyi GDI performansına sahiptir. Örneğin, video belleği için bit eşlem oluşturmak için, birincil ekranla aynı renk biçimine sahip uyumlu bir bit eşlem kullanmak en iyisidir. Video belleğine girdikten sonra bit eşlem üzerinde işleme ve ekranda görüntüleme, sistem belleği yüzeyinden veya doğrudan DIB'den önemli ölçüde daha hızlıdır.

Daha iyi GDI performansına olanak tanımanın yanı sıra, uyumlu bit eşlemler görüntüleri yakalamak (bkz. Görüntü yakalama) ve menüler için çalışma zamanında bit eşlemler oluşturmak için 'de "Bit Eşlem Oluşturma" bölümüne bakın (bkz. menüleri kullanma )).

Farklı renk düzenlemesine sahip cihazlar arasında bit eşlem aktarmak için, GetDIBits kullanarak uyumlu bit eşlemi DIB'ye dönüştürün ve DIB'yi ikinci cihaza görüntülemek için SetDIBits veya StretchDIBits çağırın.

İki tür DDB vardır: atılabilir ve ayırt edilemez. Atılabilir DDB, bit eşlem DC'de seçilmezse ve sistem belleği düşükse sistemin attığı bit eşlemdir. CreateDiscardableBitmap işlevi atılabilir bit eşlemler oluşturur. createBitmapCreateCompatibleBitmapve CreateBitmapIndirect işlevleri özel olmayan bit eşlemler oluşturur.

Bir uygulama, gerekli yapıları başlatıp CreateDIBitmap işlevini çağırarak DIB'den DDB oluşturabilir. CreateDIBitmap çağrısında CBM_INIT belirtmek, cihaz biçiminde bir DDB oluşturmak için CreateCompatibleBitmap işlevini çağırmaya ve ardından DIB bitlerini DDB'ye çevirmek için SetDIBits işlevini çağırmaya eşdeğerdir. Cihazın SetDIBits işlevini destekleyip desteklemediğini belirlemek için GetDeviceCaps işlevini çağırın ve RASTERCAPS bayrağı olarak RC_DI_BITMAP belirtin.