Bagikan melalui


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
DIB_PAL_COLORS
Tabel warna harus terdiri dari array indeks 16-bit ke dalam palet logis saat ini.
DIB_RGB_COLORS
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
ERROR_INVALID_PARAMETER
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

Lihat juga

BITMAPCOREHEADER

BITMAPINFO

BITMAPINFOHEADER

Fungsi Bitmap

Gambaran Umum Bitmap

SetDIBits