bitmap Device-Dependent
Bitmap yang bergantung pada perangkat (DDB) dijelaskan dengan menggunakan struktur tunggal, BITMAP struktur. Anggota struktur ini menentukan lebar dan tinggi wilayah persegi panjang, dalam piksel; lebar array yang memetakan entri dari palet perangkat ke piksel; dan format warna perangkat, dalam hal bidang warna dan bit per piksel. Aplikasi dapat mengambil format warna perangkat dengan memanggil fungsiGetDeviceCaps dan menentukan konstanta yang sesuai. Perhatikan bahwa DDB tidak berisi nilai warna; sebagai gantinya, warna dalam format yang bergantung pada perangkat. Untuk informasi selengkapnya, lihat Warna di Bitmap. Karena setiap perangkat dapat memiliki serangkaian warnanya sendiri, DDB yang dibuat untuk satu perangkat mungkin tidak ditampilkan dengan baik pada perangkat yang berbeda.
Untuk menggunakan DDB dalam konteks perangkat, DDB harus memiliki organisasi warna konteks perangkat tersebut. Dengan demikian, DDB sering disebut bitmap yang kompatibel dan biasanya memiliki performa GDI yang lebih baik daripada DIB. Misalnya, untuk membuat bitmap untuk memori video, yang terbaik adalah menggunakan bitmap yang kompatibel dengan format warna yang sama dengan tampilan utama. Setelah dalam memori video, penyajian ke bitmap dan menampilkannya ke layar secara signifikan lebih cepat daripada dari permukaan memori sistem atau langsung dari DIB.
Selain mengaktifkan performa GDI yang lebih baik, bitmap yang kompatibel digunakan untuk mengambil gambar (lihat Menangkap Gambar ) dan untuk membuat bitmap pada run time untuk menu, lihat "Membuat Bitmap" di (lihat Menggunakan Menu ).
Untuk mentransfer bitmap antara perangkat dengan organisasi warna yang berbeda, gunakan GetDIBits untuk mengonversi bitmap yang kompatibel ke DIB dan memanggil SetDIBits atau StretchDIBits untuk menampilkan DIB ke perangkat kedua.
Ada dua jenis DDB: dapat dibuang dan tidak dapat dinonaktifkan. DDB yang dapat dibuang adalah bitmap yang dibuang sistem jika bitmap tidak dipilih ke DC dan jika memori sistem rendah. FungsiCreateDiscardableBitmap membuat bitmap yang dapat dibuang. Fungsi CreateBitmap, CreateCompatibleBitmap, dan createBitmapIndirect membuat bitmap yang tidak dapat disatukan.
Aplikasi dapat membuat DDB dari DIB dengan menginisialisasi struktur yang diperlukan dan memanggil fungsiCreateDIBitmap. Menentukan CBM_INIT dalam panggilan ke CreateDIBitmap setara dengan memanggil fungsiCreateCompatibleBitmap untuk membuat DDB dalam format perangkat lalu memanggil fungsiSetDIBitsuntuk menerjemahkan bit DIB ke DDB. Untuk menentukan apakah perangkat mendukung fungsi SetDIBits, panggil fungsi GetDeviceCaps, tentukan RC_DI_BITMAP sebagai bendera RASTERCAPS.