Fungsi GetDIBits (wingdi.h)
Fungsi GetDIBits mengambil bit bitmap kompatibel yang ditentukan dan menyalinnya ke dalam buffer sebagai DIB menggunakan format yang ditentukan.
Sintaks
int GetDIBits(
[in] HDC hdc,
[in] HBITMAP hbm,
[in] UINT start,
[in] UINT cLines,
[out] LPVOID lpvBits,
[in, out] LPBITMAPINFO lpbmi,
[in] UINT usage
);
Parameter
[in] hdc
Handel ke konteks perangkat.
[in] hbm
Handel ke bitmap. Ini harus berupa bitmap (DDB) yang kompatibel.
[in] start
Baris pemindaian pertama yang diambil.
[in] cLines
Jumlah baris pemindaian yang akan diambil.
[out] lpvBits
Penunjuk ke buffer untuk menerima data bitmap. Jika parameter ini NULL, fungsi meneruskan dimensi dan format bitmap ke struktur BITMAPINFO yang diarahkan oleh parameter lpbmi .
[in, out] lpbmi
Penunjuk ke struktur BITMAPINFO yang menentukan format yang diinginkan untuk data DIB.
[in] usage
Format anggota bmiColors dari struktur BITMAPINFO . Ini harus menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Tabel warna harus terdiri dari array indeks 16-bit ke dalam palet logis saat ini. |
|
Tabel warna harus terdiri dari nilai merah harfiah, hijau, biru (RGB). |
Mengembalikan nilai
Jika parameter lpvBits bukan NULL dan fungsi berhasil, nilai yang dikembalikan adalah jumlah baris pemindaian yang disalin dari bitmap.
Jika parameter lpvBitsadalah NULL dan GetDIBits berhasil mengisi struktur BITMAPINFO , nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol.
Fungsi ini dapat mengembalikan nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Satu atau beberapa parameter input tidak valid. |
Keterangan
Jika format yang diminta untuk DIB cocok dengan format internalnya, nilai RGB untuk bitmap akan disalin. Jika format yang diminta tidak cocok dengan format internal, tabel warna disintesis. Tabel berikut ini menjelaskan tabel warna yang disintesis untuk setiap format.
Nilai | Makna |
---|---|
1_BPP | Tabel warna terdiri dari entri hitam dan putih. |
4_BPP | Tabel warna terdiri dari campuran warna yang identik dengan palet VGA standar. |
8_BPP | Tabel warna terdiri dari campuran umum 256 warna yang ditentukan oleh GDI. (Termasuk dalam 256 warna ini adalah 20 warna yang ditemukan di palet logis default.) |
24_BPP | Tidak ada tabel warna yang dikembalikan. |
Jika parameter lpvBits adalah penunjuk yang valid, enam anggota pertama dari struktur BITMAPINFOHEADER harus diinisialisasi untuk menentukan ukuran dan format DIB. Baris pemindaian harus diselaraskan pada DWORD kecuali untuk bitmap terkompresi RLE.
DIB bawah-atas ditentukan dengan mengatur tinggi ke angka positif, sementara DIB atas-bawah ditentukan dengan mengatur tinggi ke angka negatif. Tabel warna bitmap akan ditambahkan ke struktur BITMAPINFO .
Jika lpvBitsadalah NULL, GetDIBits memeriksa anggota pertama dari struktur pertama yang ditujukkan oleh lpbi. Anggota ini harus menentukan ukuran, dalam byte, dari BITMAPCOREHEADER atau struktur BITMAPINFOHEADER . Fungsi ini menggunakan ukuran yang ditentukan untuk menentukan bagaimana anggota yang tersisa harus diinisialisasi.
Jika lpvBitsADALAH NULL dan anggota bit count BITMAPINFO diinisialisasi ke nol, GetDIBits mengisi struktur BITMAPINFOHEADER atau BITMAPCOREHEADER tanpa tabel warna. Teknik ini dapat digunakan untuk mengkueri atribut bitmap.
Bitmap yang diidentifikasi oleh parameter hbmp tidak boleh dipilih ke dalam konteks perangkat saat aplikasi memanggil fungsi ini.
Asal untuk DIB bawah-atas adalah sudut kiri bawah bitmap; asal untuk DIB atas-bawah adalah sudut kiri atas.
Contoh
Misalnya, lihat Menangkap Gambar.
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | wingdi.h (sertakan Windows.h) |
Pustaka | Gdi32.lib |
DLL | Gdi32.dll |