Bagikan melalui


Fungsi BitBlt (wingdi.h)

Fungsi BitBlt melakukan transfer blok bit dari data warna yang sesuai dengan persegi panjang piksel dari konteks perangkat sumber yang ditentukan ke dalam konteks perangkat tujuan.

Sintaks

BOOL BitBlt(
  [in] HDC   hdc,
  [in] int   x,
  [in] int   y,
  [in] int   cx,
  [in] int   cy,
  [in] HDC   hdcSrc,
  [in] int   x1,
  [in] int   y1,
  [in] DWORD rop
);

Parameter

[in] hdc

Handel ke konteks perangkat tujuan.

[in] x

Koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.

[in] y

Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.

[in] cx

Lebar, dalam unit logis, persegi panjang sumber dan tujuan.

[in] cy

Tinggi, dalam unit logis, dari sumber dan persegi panjang tujuan.

[in] hdcSrc

Handel ke konteks perangkat sumber.

[in] x1

Koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang sumber.

[in] y1

Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang sumber.

[in] rop

Kode operasi raster. Kode-kode ini menentukan bagaimana data warna untuk persegi panjang sumber digabungkan dengan data warna untuk persegi panjang tujuan untuk mencapai warna akhir.

Daftar berikut menunjukkan beberapa kode operasi raster umum.

Nilai Makna
KEGELAPAN
Mengisi persegi panjang tujuan menggunakan warna yang terkait dengan indeks 0 di palet fisik. (Warna ini hitam untuk palet fisik default.)
CAPTUREBLT
Menyertakan jendela apa pun yang berlapis di atas jendela Anda dalam gambar yang dihasilkan. Secara default, gambar hanya berisi jendela Anda. Perhatikan bahwa ini umumnya tidak dapat digunakan untuk mencetak konteks perangkat.
DSTINVERT
Menginversi persegi panjang tujuan.
MERGECOPY
Menggabungkan warna persegi panjang sumber dengan kuas yang saat ini dipilih di hdcDest, dengan menggunakan operator BOolean AND.
MERGEPAINT
Menggabungkan warna persegi panjang sumber terbalik dengan warna persegi panjang tujuan dengan menggunakan operator BOolean OR.
NOMIRRORBITMAP
Mencegah bitmap dicerminkan.
NOTSRCCOPY
Menyalin persegi panjang sumber terbalik ke tujuan.
NOTSRCERASE
Menggabungkan warna persegi panjang sumber dan tujuan dengan menggunakan operator BOolean OR lalu membalikkan warna yang dihasilkan.
PATCOPY
Menyalin kuas yang saat ini dipilih dalam hdcDest, ke bitmap tujuan.
PATINVERT
Menggabungkan warna kuas yang saat ini dipilih dalam hdcDest, dengan warna persegi panjang tujuan dengan menggunakan operator Boolean XOR.
PATPAINT
Menggabungkan warna kuas yang saat ini dipilih dalam hdcDest, dengan warna persegi panjang sumber terbalik dengan menggunakan operator OR Boolean. Hasil operasi ini dikombinasikan dengan warna persegi panjang tujuan dengan menggunakan operator OR Boolean.
SRCAND
Menggabungkan warna persegi panjang sumber dan tujuan dengan menggunakan operator BOolean AND.
SRCCOPY
Menyalin persegi panjang sumber langsung ke persegi panjang tujuan.
SRCERASE
Menggabungkan warna terbalik persegi panjang tujuan dengan warna persegi panjang sumber dengan menggunakan operator BOolean AND.
SRCINVERT
Menggabungkan warna persegi panjang sumber dan tujuan dengan menggunakan operator Boolean XOR.
SRCPAINT
Menggabungkan warna persegi panjang sumber dan tujuan dengan menggunakan operator BOolean OR.
PUTIH
Mengisi persegi panjang tujuan menggunakan warna yang terkait dengan indeks 1 di palet fisik. (Warna ini berwarna putih untuk palet fisik default.)

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

BitBlt hanya melakukan kliping pada DC tujuan.

Jika transformasi rotasi atau shear berlaku dalam konteks perangkat sumber, BitBlt mengembalikan kesalahan. Jika transformasi lain ada dalam konteks perangkat sumber (dan transformasi yang cocok tidak berlaku dalam konteks perangkat tujuan), persegi panjang dalam konteks perangkat tujuan direntangkan, dikompresi, atau diputar, jika perlu.

Jika format warna konteks perangkat sumber dan tujuan tidak cocok, fungsi BitBlt mengonversi format warna sumber agar sesuai dengan format tujuan.

Ketika metafile yang ditingkatkan sedang direkam, kesalahan terjadi jika konteks perangkat sumber mengidentifikasi konteks perangkat metafile yang disempurnakan.

Tidak semua perangkat mendukung fungsi BitBlt . Untuk informasi selengkapnya, lihat entri kemampuan raster RC_BITBLT dalam fungsi GetDeviceCaps serta fungsi berikut: MaskBlt, PlgBlt, dan StretchBlt.

BitBlt mengembalikan kesalahan jika konteks perangkat sumber dan tujuan mewakili perangkat yang berbeda. Untuk mentransfer data antara DC untuk perangkat yang berbeda, konversikan bitmap memori ke DIB dengan memanggil GetDIBits. Untuk menampilkan DIB ke perangkat kedua, panggil SetDIBits atau StretchDIBits.

ICM: Tidak ada manajemen warna yang dilakukan ketika blits terjadi.

Contoh

Contoh kode berikut menunjukkan penggunaan BitBlt.

if (!BitBlt(hdcMemDC,
    0, 0,
    rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,
    hdcWindow,
    0, 0,
    SRCCOPY))
{
    MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);
    goto done;
}

Untuk melihat contoh ini dalam konteks, lihat Menangkap Gambar.

Persyaratan

Persyaratan Nilai
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

Fungsi Bitmap

Gambaran Umum Bitmap

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

StretchBlt

StretchDIBits