CImage
Kelas
CImage
memberikan dukungan bitmap yang ditingkatkan, termasuk kemampuan untuk memuat dan menyimpan gambar dalam format JPEG, GIF, BMP, dan Portable Network Graphics (PNG).
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
class CImage
Nama | Deskripsi |
---|---|
CImage::CImage |
Konstruktor. |
Nama | Deskripsi |
---|---|
CImage::AlphaBlend |
Menampilkan bitmap yang memiliki piksel transparan atau semitransparan. |
CImage::Attach |
Melampirkan HBITMAP ke CImage objek. Dapat digunakan dengan bitmap bagian non-DIB atau bitmap bagian DIB. |
CImage::BitBlt |
Menyalin bitmap dari konteks perangkat sumber ke konteks perangkat saat ini. |
CImage::Create |
Membuat bitmap bagian DIB dan melampirkannya ke objek yang dibuat sebelumnya CImage . |
CImage::CreateEx |
Membuat bitmap bagian DIB (dengan parameter tambahan) dan melampirkannya ke objek yang dibuat sebelumnya CImage . |
CImage::Destroy |
Melepaskan bitmap dari CImage objek dan menghancurkan bitmap. |
CImage::Detach |
Mencopot bitmap dari CImage objek. |
CImage::Draw |
Menyalin bitmap dari persegi panjang sumber ke dalam persegi panjang tujuan. Draw membentangkan atau mengompresi bitmap agar pas dengan dimensi persegi panjang tujuan, jika perlu, dan menangani perpaduan alfa dan warna transparan. |
CImage::GetBits |
Mengambil penunjuk ke nilai piksel aktual dari bitmap. |
CImage::GetBPP |
Mengambil bit per piksel. |
CImage::GetColorTable |
Mengambil nilai warna merah, hijau, biru (RGB) dari berbagai entri dalam tabel warna. |
CImage::GetDC |
Mengambil konteks perangkat tempat bitmap saat ini dipilih. |
CImage::GetExporterFilterString |
Menemukan format gambar yang tersedia dan deskripsinya. |
CImage::GetHeight |
Mengambil tinggi gambar saat ini dalam piksel. |
CImage::GetImporterFilterString |
Menemukan format gambar yang tersedia dan deskripsinya. |
CImage::GetMaxColorTableEntries |
Mengambil jumlah maksimum entri dalam tabel warna. |
CImage::GetPitch |
Mengambil pitch gambar saat ini, dalam byte. |
CImage::GetPixel |
Mengambil warna piksel yang ditentukan oleh x dan y . |
CImage::GetPixelAddress |
Mengambil alamat piksel tertentu. |
CImage::GetTransparentColor |
Mengambil posisi warna transparan dalam tabel warna. |
CImage::GetWidth |
Mengambil lebar gambar saat ini dalam piksel. |
CImage::IsDIBSection |
Menentukan apakah bitmap terlampir adalah bagian DIB. |
CImage::IsIndexed |
Menunjukkan bahwa warna bitmap dipetakan ke palet terindeks. |
CImage::IsNull |
Menunjukkan apakah bitmap sumber saat ini dimuat. |
CImage::IsTransparencySupported |
Menunjukkan apakah aplikasi mendukung bitmap transparan. |
CImage::Load |
Memuat gambar dari file yang ditentukan. |
CImage::LoadFromResource |
Memuat gambar dari sumber daya yang ditentukan. |
CImage::MaskBlt |
Menggabungkan data warna untuk bitmap sumber dan tujuan menggunakan operasi mask dan raster yang ditentukan. |
CImage::PlgBlt |
Melakukan transfer bit-block dari persegi panjang dalam konteks perangkat sumber ke dalam parallelogram dalam konteks perangkat tujuan. |
CImage::ReleaseDC |
Merilis konteks perangkat yang diambil dengan CImage::GetDC . |
CImage::ReleaseGDIPlus |
Merilis sumber daya yang digunakan oleh GDI+. Harus dipanggil untuk membebaskan sumber daya yang dibuat oleh objek global CImage . |
CImage::Save |
Menyimpan gambar sebagai jenis yang ditentukan. Save tidak dapat menentukan opsi gambar. |
CImage::SetColorTable |
Mengatur nilai warna RGB merah, hijau, biru) dalam rentang entri dalam tabel warna bagian DIB. |
CImage::SetPixel |
Mengatur piksel pada koordinat yang ditentukan ke warna yang ditentukan. |
CImage::SetPixelIndexed |
Mengatur piksel pada koordinat yang ditentukan ke warna pada indeks palet yang ditentukan. |
CImage::SetPixelRGB |
Mengatur piksel pada koordinat yang ditentukan ke nilai merah, hijau, biru (RGB) yang ditentukan. |
CImage::SetTransparentColor |
Mengatur indeks warna yang akan diperlakukan sebagai transparan. Hanya satu warna dalam palet yang bisa transparan. |
CImage::StretchBlt |
Menyalin bitmap dari persegi panjang sumber ke dalam persegi panjang tujuan, meregangkan atau mengompresi bitmap agar sesuai dengan dimensi persegi panjang tujuan, jika perlu. |
CImage::TransparentBlt |
Menyalin bitmap dengan warna transparan dari konteks perangkat sumber ke konteks perangkat saat ini. |
Nama | Deskripsi |
---|---|
CImage::operator HBITMAP |
Mengembalikan handel Windows yang dilampirkan ke CImage objek. |
CImage
mengambil bitmap yang merupakan bagian bitmap independen perangkat (DIB) atau tidak; namun, Anda dapat menggunakan Create
atau CImage::Load
hanya dengan bagian DIB. Anda dapat melampirkan bitmap bagian non-DIB ke CImage
objek menggunakan Attach
, tetapi kemudian Anda tidak dapat menggunakan metode berikut CImage
, yang hanya mendukung bitmap bagian DIB:
Untuk menentukan apakah bitmap terlampir adalah bagian DIB, panggil IsDibSection
.
Catatan
Di Visual Studio .NET 2003, kelas ini menyimpan hitungan jumlah CImage
objek yang dibuat. Setiap kali hitungan masuk ke 0, fungsi GdiplusShutdown
secara otomatis dipanggil untuk merilis sumber daya yang digunakan oleh GDI+. Ini memastikan bahwa setiap CImage
objek yang dibuat secara langsung atau tidak langsung oleh DLL selalu dihancurkan dengan benar dan yang GdiplusShutdown
tidak dipanggil dari DllMain
.
Catatan
Menggunakan objek global CImage
dalam DLL tidak disarankan. Jika Anda perlu menggunakan objek global CImage
dalam DLL, panggil CImage::ReleaseGDIPlus
untuk secara eksplisit merilis sumber daya yang digunakan oleh GDI+.
CImage
tidak dapat dipilih ke dalam baru CDC
. CImage
membuat sendiri HDC
untuk gambar. HBITMAP
Karena hanya dapat dipilih menjadi satu per satuHDC
, yang HBITMAP
terkait dengan CImage
tidak dapat dipilih ke yang lain HDC
. Jika Anda membutuhkan CDC
, ambil HDC
dari CImage
dan berikan kepada CDC::FromHandle
.
// Get a CDC for the image
CDC* pDC = CDC::FromHandle(m_myImage.GetDC());
// Use pDC here
pDC->Rectangle(0, 40, 100, 50);
m_myImage.ReleaseDC();
Saat Anda menggunakan CImage
dalam proyek MFC, perhatikan fungsi anggota mana dalam proyek Anda yang mengharapkan penunjuk ke CBitmap
objek. Jika Anda ingin menggunakan CImage
dengan fungsi seperti itu, seperti CMenu::AppendMenu
, gunakan CBitmap::FromHandle
, teruskan CImage
HBITMAP
, dan gunakan yang dikembalikan CBitmap*
.
void CMyDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
CBitmap* pBitmap = CBitmap::FromHandle(m_myImage);
m_pmenuPop->AppendMenu(0, ID_BMPCOMMAND, pBitmap);
ClientToScreen(&point);
m_pmenuPop->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN, point.x,
point.y, this);
}
Melalui CImage
, Anda memiliki akses ke bit aktual dari bagian DIB. Anda dapat menggunakan CImage
objek di mana saja Anda sebelumnya menggunakan bagian Win32 HBITMAP
atau DIB.
Anda dapat menggunakan CImage
dari MFC atau ATL.
Catatan
Saat Anda membuat proyek menggunakan CImage
, Anda harus menentukan CString
sebelum menyertakan atlimage.h
. Jika proyek Anda menggunakan ATL tanpa MFC, sertakan atlstr.h
sebelum Anda menyertakan atlimage.h
. Jika proyek Anda menggunakan MFC (atau jika itu adalah proyek ATL dengan dukungan MFC), sertakan afxstr.h
sebelum Anda menyertakan atlimage.h
.
Demikian juga, Anda harus menyertakan atlimage.h
sebelum menyertakan atlimpl.cpp
. Untuk mencapai hal ini dengan mudah, sertakan atlimage.h
dalam Anda pch.h
(stdafx.h
di Visual Studio 2017 dan yang lebih lama).
Header: atlimage.h
Menampilkan bitmap yang memiliki piksel transparan atau semitransparan.
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
const POINT& pointDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
BOOL AlphaBlend(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
hDestDC
Menangani konteks perangkat tujuan.
xDest
Koordinat x, di unit logis, dari sudut kiri atas persegi panjang tujuan.
yDest
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.
bSrcAlpha
Nilai transparansi alfa yang akan digunakan pada seluruh bitmap sumber. 0xff default (255) mengasumsikan bahwa gambar Anda buram, dan Anda hanya ingin menggunakan nilai alfa per piksel.
bBlendOp
Fungsi alpha-blending untuk bitmap sumber dan tujuan, nilai alfa global yang akan diterapkan ke seluruh bitmap sumber, dan memformat informasi untuk bitmap sumber. Fungsi campuran sumber dan tujuan saat ini terbatas pada AC_SRC_OVER
.
pointDest
Referensi ke POINT
struktur yang mengidentifikasi sudut kiri atas persegi panjang tujuan, dalam unit logis.
nDestWidth
Lebar, dalam unit logis, persegi panjang tujuan.
nDestHeight
Tinggi, dalam unit logis, dari persegi panjang tujuan.
xSrc
Koordinat x logis dari sudut kiri atas persegi panjang sumber.
ySrc
Koordinat y logis dari sudut kiri atas persegi panjang sumber.
nSrcWidth
Lebar, dalam unit logis, dari persegi panjang sumber.
nSrcHeight
Tinggi, dalam unit logis, dari persegi panjang sumber.
rectDest
Referensi ke RECT
struktur, mengidentifikasi tujuan.
rectSrc
Referensi ke RECT
struktur, mengidentifikasi sumber.
Bukan nol jika berhasil; jika tidak, 0.
Bitmap alpha-blend mendukung perpaduan warna per piksel.
Ketika bBlendOp
diatur ke default AC_SRC_OVER
, bitmap sumber ditempatkan di atas bitmap tujuan berdasarkan nilai alfa piksel sumber.
Melampirkan hBitmap
ke CImage
objek.
void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();
hBitmap
Handel ke HBITMAP
.
eOrientation
Menentukan orientasi bitmap. Bisa jadi salah satu dari yang berikut:
DIBOR_DEFAULT
Orientasi bitmap ditentukan oleh sistem operasi.DIBOR_BOTTOMUP
Baris bitmap berada dalam urutan terbalik. Hal ini menyebabkanCImage::GetBits
pengembalian pointer di dekat akhir buffer bitmap danCImage::GetPitch
mengembalikan angka negatif.DIBOR_TOPDOWN
Baris bitmap berada dalam urutan atas ke bawah. Ini menyebabkanCImage::GetBits
mengembalikan penunjuk ke byte pertama dari buffer bitmap danCImage::GetPitch
mengembalikan angka positif.
Bitmap dapat berupa bitmap bagian non-DIB atau bitmap bagian DIB. Lihat IsDIBSection
untuk daftar metode yang hanya dapat Anda gunakan dengan bitmap bagian DIB.
Menyalin bitmap dari konteks perangkat sumber ke konteks perangkat saat ini.
BOOL BitBlt(
HDC hDestDC,
int xDest,
int yDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
const POINT& pointDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
const RECT& rectDest,
const POINT& pointSrc,
DWORD dwROP = SRCCOPY) const throw();
hDestDC
Tujuan HDC
.
xDest
Koordinat x logis dari sudut kiri atas persegi panjang tujuan.
yDest
Koordinat y logis dari sudut kiri atas persegi panjang tujuan.
dwROP
Operasi raster yang akan dilakukan. Kode operasi raster menentukan dengan tepat cara menggabungkan bit sumber, tujuan, dan pola (seperti yang didefinisikan oleh kuas yang saat ini dipilih) untuk membentuk tujuan. Lihat BitBlt
di Windows SDK untuk daftar kode operasi raster lainnya dan deskripsinya.
pointDest
Struktur POINT
yang menunjukkan sudut kiri atas persegi panjang tujuan.
nDestWidth
Lebar, dalam unit logis, persegi panjang tujuan.
nDestHeight
Tinggi, dalam unit logis, dari persegi panjang tujuan.
xSrc
Koordinat x logis dari sudut kiri atas persegi panjang sumber.
ySrc
Koordinat y logis dari sudut kiri atas persegi panjang sumber.
rectDest
Struktur RECT
yang menunjukkan persegi panjang tujuan.
pointSrc
Struktur POINT
yang menunjukkan sudut kiri atas persegi panjang sumber.
Bukan nol jika berhasil; jika tidak, nol.
Untuk informasi selengkapnya, lihat BitBlt
di Windows SDK.
Membuat CImage
objek.
CImage() throw();
Setelah Anda membuat objek, panggil Create
, , Load
LoadFromResource
, atau Attach
untuk melampirkan bitmap ke objek .
Catatan Di Visual Studio, kelas ini menyimpan hitungan jumlah CImage
objek yang dibuat. Setiap kali hitungan masuk ke 0, fungsi GdiplusShutdown
secara otomatis dipanggil untuk merilis sumber daya yang digunakan oleh GDI+. Ini memastikan bahwa setiap CImage
objek yang dibuat secara langsung atau tidak langsung oleh DLL selalu dihancurkan dengan benar dan yang GdiplusShutdown
tidak dipanggil dari DllMain.
Menggunakan objek global CImage
dalam DLL tidak disarankan. Jika Anda perlu menggunakan objek global CImage
dalam DLL, panggil CImage::ReleaseGDIPlus
untuk secara eksplisit merilis sumber daya yang digunakan oleh GDI+.
Membuat bitmap CImage
dan melampirkannya ke objek yang dibuat sebelumnya CImage
.
BOOL Create(
int nWidth,
int nHeight,
int nBPP,
DWORD dwFlags = 0) throw();
nWidth
Lebar CImage
bitmap, dalam piksel.
nHeight
Tinggi CImage
bitmap, dalam piksel. Jika nHeight
positif, bitmap adalah DIB bawah ke atas dan asalnya adalah sudut kiri bawah. Jika nHeight
negatif, bitmap adalah DIB atas ke bawah dan asalnya adalah sudut kiri atas.
nBPP
Jumlah bit per piksel dalam bitmap. Biasanya 4, 8, 16, 24, atau 32. Bisa 1 untuk bitmap monokrom atau masker.
dwFlags
Menentukan apakah objek bitmap memiliki saluran alfa. Bisa berupa kombinasi nol atau lebih dari nilai berikut:
createAlphaChannel
Hanya dapat digunakan jikanBPP
adalah 32, daneCompression
adalahBI_RGB
. Jika ditentukan, gambar yang dibuat memiliki nilai alfa (transparansi) untuk setiap piksel, disimpan dalam byte ke-4 dari setiap piksel (tidak digunakan dalam gambar non-alfa 32-bit). Saluran alfa ini secara otomatis digunakan saat memanggilCImage::AlphaBlend
.
Catatan
Dalam panggilan ke CImage::Draw
, gambar dengan saluran alfa secara otomatis dicamur alfa ke tujuan.
Bukan nol jika berhasil; jika tidak, 0.
Membuat bitmap CImage
dan melampirkannya ke objek yang dibuat sebelumnya CImage
.
BOOL CreateEx(
int nWidth,
int nHeight,
int nBPP,
DWORD eCompression,
const DWORD* pdwBitmasks = NULL,
DWORD dwFlags = 0) throw();
nWidth
Lebar CImage
bitmap, dalam piksel.
nHeight
Tinggi CImage
bitmap, dalam piksel. Jika nHeight
positif, bitmap adalah DIB bawah ke atas dan asalnya adalah sudut kiri bawah. Jika nHeight
negatif, bitmap adalah DIB atas ke bawah dan asalnya adalah sudut kiri atas.
nBPP
Jumlah bit per piksel dalam bitmap. Biasanya 4, 8, 16, 24, atau 32. Bisa 1 untuk bitmap monokrom atau masker.
eCompression
Menentukan jenis pemadatan untuk bitmap bawah-atas terkompresi (DIB atas ke bawah tidak dapat dikompresi). Dapat berupa salah satu dari nilai berikut:
BI_RGB
Format tidak dikompresi. Menentukan nilai ini saat memanggilCImage::CreateEx
setara dengan panggilanCImage::Create
.BI_BITFIELDS
Format tidak dikompresi dan tabel warna terdiri dari tigaDWORD
masker warna yang menentukan komponen merah, hijau, dan biru, masing-masing, dari setiap piksel. Ini berlaku ketika digunakan dengan bitmap 16 dan 32 bpp.
pdwBitfields
Hanya digunakan jika eCompression
diatur ke BI_BITFIELDS
, jika tidak, harus NULL
. Penunjuk ke array tiga DWORD
bitmask, yang menentukan bit mana dari setiap piksel yang digunakan untuk komponen warna merah, hijau, dan biru. Untuk informasi tentang pembatasan untuk bitfield, lihat BITMAPINFOHEADER
di Windows SDK.
dwFlags
Menentukan apakah objek bitmap memiliki saluran alfa. Bisa berupa kombinasi nol atau lebih dari nilai berikut:
createAlphaChannel
Hanya dapat digunakan jikanBPP
adalah 32, daneCompression
adalahBI_RGB
. Jika ditentukan, gambar yang dibuat memiliki nilai alfa (transparansi) untuk setiap piksel, disimpan dalam byte ke-4 dari setiap piksel (tidak digunakan dalam gambar non-alfa 32-bit). Saluran alfa ini secara otomatis digunakan saat memanggilCImage::AlphaBlend
.Catatan
Dalam panggilan ke
CImage::Draw
, gambar dengan saluran alfa secara otomatis dicamur alfa ke tujuan.
TRUE
jika berhasil. Jika tidak FALSE
, .
Contoh berikut membuat bitmap 100x100 piksel, menggunakan 16 bit untuk mengodekan setiap piksel. Dalam piksel 16-bit tertentu, bit 0-3 mengodekan komponen merah, bit 4-7 mengodekan hijau, dan bit 8-11 mengodekan biru. 4 bit yang tersisa tidak digunakan.
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
Melepaskan bitmap dari CImage
objek dan menghancurkan bitmap.
void Destroy() throw();
Melepaskan bitmap dari CImage
objek.
HBITMAP Detach() throw();
Handel ke bitmap dilepas, atau NULL
jika tidak ada bitmap yang terpasang.
Menyalin bitmap dari konteks perangkat sumber ke konteks perangkat saat ini.
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight) const throw();
BOOL Draw(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc) const throw();
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest) const throw();
BOOL Draw(
HDC hDestDC,
const POINT& pointDest) const throw();
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight) const throw();
BOOL Draw(
HDC hDestDC,
const RECT& rectDest) const throw();
hDestDC
Handel ke konteks perangkat tujuan.
xDest
Koordinat x, di unit logis, dari sudut kiri atas persegi panjang tujuan.
yDest
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.
nDestWidth
Lebar, dalam unit logis, persegi panjang tujuan.
nDestHeight
Tinggi, dalam unit logis, dari persegi panjang tujuan.
xSrc
Koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
ySrc
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
nSrcWidth
Lebar, dalam unit logis, dari persegi panjang sumber.
nSrcHeight
Tinggi, dalam unit logis, dari persegi panjang sumber.
rectDest
Referensi ke RECT
struktur, mengidentifikasi tujuan.
rectSrc
Referensi ke RECT
struktur, mengidentifikasi sumber.
pointDest
Referensi ke POINT
struktur yang mengidentifikasi sudut kiri atas persegi panjang tujuan, dalam unit logis.
Bukan nol jika berhasil; jika tidak, 0.
Draw
melakukan operasi yang sama dengan StretchBlt
, kecuali gambar berisi warna transparan atau saluran alfa. Dalam hal ini, Draw
melakukan operasi yang sama seperti atau TransparentBlt
AlphaBlend
sebagaimana diperlukan.
Untuk versi Draw
yang tidak menentukan persegi sumber, seluruh gambar sumber adalah default. Untuk versi Draw
yang tidak menentukan ukuran untuk persegi panjang tujuan, ukuran gambar sumber adalah default dan tidak ada peregangan atau penyusutan yang terjadi.
Mengambil penunjuk ke nilai bit aktual dari piksel tertentu dalam bitmap.
void* GetBits() throw();
Penunjuk ke buffer bitmap. Jika bitmap adalah DIB bawah ke atas, pointer menunjuk di dekat akhir buffer. Jika bitmap adalah DIB atas ke bawah, penunjuk menunjuk ke byte pertama buffer.
Dengan menggunakan penunjuk ini, bersama dengan nilai yang dikembalikan oleh GetPitch
, Anda dapat menemukan dan mengubah piksel individual dalam gambar.
Catatan
Metode ini hanya mendukung bitmap bagian DIB; akibatnya, Anda mengakses piksel CImage
objek dengan cara yang sama seperti piksel bagian DIB. Pointer yang dikembalikan menunjuk ke piksel di lokasi (0, 0).
Mengambil nilai bit per piksel.
int GetBPP() const throw();
Jumlah bit per piksel.
Nilai ini menentukan jumlah bit yang menentukan setiap piksel dan jumlah maksimum warna dalam bitmap.
Bit per piksel biasanya 1, 4, 8, 16, 24, atau 32. biBitCount
Lihat anggota BITMAPINFOHEADER
di Windows SDK untuk informasi selengkapnya tentang nilai ini.
Mengambil nilai warna merah, hijau, biru (RGB) dari berbagai entri di palet bagian DIB.
void GetColorTable(
UINT iFirstColor,
UINT nColors,
RGBQUAD* prgbColors) const throw();
iFirstColor
Indeks tabel warna entri pertama yang diambil.
nColors
Jumlah entri tabel warna yang akan diambil.
prgbColors
Penunjuk ke array RGBQUAD
struktur untuk mengambil entri tabel warna.
Mengambil konteks perangkat yang saat ini memiliki gambar yang dipilih ke dalamnya.
HDC GetDC() const throw();
Handel ke konteks perangkat.
Untuk setiap panggilan ke GetDC
, Anda harus memiliki panggilan berikutnya ke ReleaseDC
.
Menemukan format gambar yang tersedia untuk menyimpan gambar.
static HRESULT GetExporterFilterString(
CSimpleString& strExporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultSave,
TCHAR chSeparator = _T('|'));
strExporters
Referensi ke CSimpleString
objek. Lihat Keterangan untuk informasi selengkapnya.
aguidFileTypes
Array GUID, dengan setiap elemen yang sesuai dengan salah satu jenis file dalam string. Dalam contoh di pszAllFilesDescription
bawah ini, aguidFileTypes[0]
adalah GUID_NULL
dan nilai array yang tersisa adalah format file gambar yang didukung oleh sistem operasi saat ini.
Catatan
Untuk daftar lengkap konstanta, lihat Konstanta Format File Gambar di Windows SDK.
pszAllFilesDescription
Jika parameter ini bukan NULL
, string filter akan memiliki satu filter tambahan di awal daftar. Filter ini akan memiliki nilai pszAllFilesDescription
saat ini untuk deskripsinya, dan menerima file ekstensi apa pun yang didukung oleh pengekspor lain dalam daftar.
Contohnya:
//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any exporter.
CImage::GetExporterFilterString(
strExporters, aguidFileTypes,
_T("All Image Files"));
dwExclude
Set bendera bit yang menentukan jenis file mana yang akan dikecualikan dari daftar. Bendera yang diizinkan adalah:
excludeGIF
= 0x01 Mengecualikan file GIF.excludeBMP
= 0x02 Mengecualikan file BMP (Windows Bitmap).excludeEMF
= 0x04 Mengecualikan file EMF (Enhanced Metafile).excludeWMF
= 0x08 Mengecualikan file WMF (Metafile Windows).excludeJPEG
= 0x10 Mengecualikan file JPEG.excludePNG
= 0x20 Mengecualikan file PNG.excludeTIFF
= 0x40 Mengecualikan file TIFF.excludeIcon
= 0x80 Mengecualikan file ICO (Ikon Windows).excludeOther
= 0x80000000 Mengecualikan jenis file lain yang tidak tercantum di atas.excludeDefaultLoad
= 0 Untuk beban, semua jenis file disertakan secara defaultexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Untuk menyimpan, file-file ini dikecualikan secara default karena biasanya memiliki persyaratan khusus.
chSeparator
Pemisah yang digunakan di antara format gambar. Lihat Keterangan untuk informasi selengkapnya.
HRESULT
Standar .
Anda dapat meneruskan string format yang dihasilkan ke objek MFC CFileDialog
Anda untuk mengekspos ekstensi file dari format gambar yang tersedia dalam kotak dialog Simpan Sebagai File.
Parameter strExporter
memiliki format:
file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||
di mana |
adalah karakter pemisah yang ditentukan oleh chSeparator
. Contohnya:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Gunakan pemisah |
default jika Anda meneruskan string ini ke objek MFC CFileDialog
. Gunakan pemisah '\0'
null jika Anda meneruskan string ini ke kotak dialog Penyimpanan File umum.
Mengambil tinggi, dalam piksel, gambar.
int GetHeight() const throw();
Tinggi, dalam piksel, gambar.
Menemukan format gambar yang tersedia untuk memuat gambar.
static HRESULT GetImporterFilterString(
CSimpleString& strImporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultLoad,
TCHAR chSeparator = _T('|'));
strImporters
Referensi ke CSimpleString
objek. Lihat Keterangan untuk informasi selengkapnya.
aguidFileTypes
Array GUID, dengan setiap elemen yang sesuai dengan salah satu jenis file dalam string. Dalam contoh di pszAllFilesDescription
bawah ini, *aguidFileTypes[0]*
adalah GUID_NULL
dengan nilai array yang tersisa adalah format file gambar yang didukung oleh sistem operasi saat ini.
Catatan
Untuk daftar lengkap konstanta, lihat Konstanta Format File Gambar di Windows SDK.
pszAllFilesDescription
Jika parameter ini bukan NULL
, string filter akan memiliki satu filter tambahan di awal daftar. Filter ini akan memiliki nilai pszAllFilesDescription
saat ini untuk deskripsinya, dan menerima file ekstensi apa pun yang didukung oleh pengekspor lain dalam daftar.
Contohnya:
//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any importer.
CImage::GetImporterFilterString(
strImporters, aguidFileTypes,
_T("All Image Files"));
dwExclude
Set bendera bit yang menentukan jenis file mana yang akan dikecualikan dari daftar. Bendera yang diizinkan adalah:
excludeGIF
= 0x01 Mengecualikan file GIF.excludeBMP
= 0x02 Mengecualikan file BMP (Windows Bitmap).excludeEMF
= 0x04 Mengecualikan file EMF (Enhanced Metafile).excludeWMF
= 0x08 Mengecualikan file WMF (Metafile Windows).excludeJPEG
= 0x10 Mengecualikan file JPEG.excludePNG
= 0x20 Mengecualikan file PNG.excludeTIFF
= 0x40 Mengecualikan file TIFF.excludeIcon
= 0x80 Mengecualikan file ICO (Ikon Windows).excludeOther
= 0x80000000 Mengecualikan jenis file lain yang tidak tercantum di atas.excludeDefaultLoad
= 0 Untuk beban, semua jenis file disertakan secara defaultexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Untuk menyimpan, file-file ini dikecualikan secara default karena biasanya memiliki persyaratan khusus.
chSeparator
Pemisah yang digunakan di antara format gambar. Lihat Keterangan untuk informasi selengkapnya.
Anda dapat meneruskan string format yang dihasilkan ke objek MFC CFileDialog
Anda untuk mengekspos ekstensi file dari format gambar yang tersedia dalam kotak dialog Buka File.
Parameter strImporter
memiliki format:
'deskripsi file 0|. ext0|deskripsi file 1|. ext1|... deskripsi file N|*.extN||
di mana |
adalah karakter pemisah yang ditentukan oleh chSeparator
. Contohnya:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Gunakan pemisah |
default jika Anda meneruskan string ini ke objek MFC CFileDialog
. Gunakan pemisah '\0'
null jika Anda meneruskan string ini ke kotak dialog Buka File umum.
Mengambil jumlah maksimum entri dalam tabel warna.
int GetMaxColorTableEntries() const throw();
Jumlah entri dalam tabel warna.
Metode ini hanya mendukung bitmap bagian DIB.
Mengambil pitch gambar.
int GetPitch() const throw();
Pitch gambar. Jika nilai yang dikembalikan negatif, bitmap adalah DIB bawah ke atas dan asalnya adalah sudut kiri bawah. Jika nilai yang dikembalikan positif, bitmap adalah DIB atas ke bawah dan asalnya adalah sudut kiri atas.
Pitch adalah jarak, dalam byte, antara dua alamat memori yang mewakili awal satu baris bitmap dan awal baris bitmap berikutnya. Karena nada diukur dalam byte, nada gambar membantu Anda menentukan format piksel. Pitch juga dapat mencakup memori tambahan, yang dicadangkan untuk bitmap.
Gunakan GetPitch
dengan GetBits
untuk menemukan piksel gambar individual.
Catatan
Metode ini hanya mendukung bitmap bagian DIB.
Mengambil warna piksel di lokasi yang ditentukan oleh x dan y.
COLORREF GetPixel(int x, int y) const throw();
x
Koordinat x piksel.
y
Koordinat y piksel.
Nilai piksel merah, hijau, biru (RGB). Jika piksel berada di luar wilayah kliping saat ini, nilai yang dikembalikan adalah CLR_INVALID
.
Mengambil alamat piksel yang tepat.
void* GetPixelAddress(int x, int y) throw();
x
Koordinat x piksel.
y
Koordinat y piksel.
Alamat ditentukan sesuai dengan koordinat piksel, pitch bitmap, dan bit per piksel.
Untuk format yang memiliki kurang dari 8 bit per piksel, metode ini mengembalikan alamat byte yang berisi piksel. Misalnya, jika format gambar Anda memiliki 4 bit per piksel, GetPixelAddress
mengembalikan alamat piksel pertama dalam byte, dan Anda harus menghitung untuk 2 piksel per byte.
Catatan
Metode ini hanya mendukung bitmap bagian DIB.
Mengambil lokasi terindeks dari warna transparan di palet warna.
LONG GetTransparentColor() const throw();
Indeks warna transparan.
Mengambil lebar, dalam piksel, gambar.
int GetWidth() const throw();
Lebar bitmap, dalam piksel.
Menentukan apakah bitmap terlampir adalah bagian DIB.
bool IsDIBSection() const throw();
TRUE
jika bitmap terlampir adalah bagian DIB. Jika tidak FALSE
, .
Jika bitmap bukan bagian DIB, Anda tidak dapat menggunakan metode berikut CImage
, yang hanya mendukung bitmap bagian DIB:
Menentukan apakah piksel bitmap dipetakan ke palet warna.
bool IsIndexed() const throw();
TRUE
jika diindeks; jika tidak FALSE
.
Metode ini hanya mengembalikan TRUE
jika bitmap adalah 8-bit (256 warna) atau kurang.
Catatan
Metode ini hanya mendukung bitmap bagian DIB.
Menentukan apakah bitmap saat ini dimuat.
bool IsNull() const throw();
Metode ini mengembalikan TRUE
jika bitmap saat ini tidak dimuat; jika tidak FALSE
.
Menunjukkan apakah aplikasi mendukung bitmap transparan.
static BOOL IsTransparencySupported() throw();
Nonzero jika platform saat ini mendukung transparansi. Jika tidak, 0.
Jika nilai yang dikembalikan bukan nol, dan transparansi didukung, panggilan ke AlphaBlend
, TransparentBlt
, atau Draw
akan menangani warna transparan.
Memuat gambar.
HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();
pszFileName
Penunjuk ke string yang berisi nama file gambar yang akan dimuat.
pStream
Penunjuk ke aliran yang berisi nama file gambar yang akan dimuat.
HRESULT
Standar .
Memuat gambar yang ditentukan oleh pszFileName
atau pStream
.
Jenis gambar yang valid adalah BMP, GIF, JPEG, PNG, dan TIFF.
Memuat gambar dari BITMAP
sumber daya.
void LoadFromResource(
HINSTANCE hInstance,
LPCTSTR pszResourceName) throw();
void LoadFromResource(
HINSTANCE hInstance,
UINT nIDResource) throw();
hInstance
Tangani ke instans modul yang berisi gambar yang akan dimuat.
pszResourceName
Penunjuk ke string yang berisi nama sumber daya yang berisi gambar yang akan dimuat.
nIDResource
ID sumber daya yang akan dimuat.
Sumber daya harus berjenis BITMAP
.
Menggabungkan data warna untuk bitmap sumber dan tujuan menggunakan operasi mask dan raster yang ditentukan.
BOOL MaskBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
HBITMAP hbmMask,
int xMask,
int yMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
const RECT& rectDest,
const POINT& pointSrc,
HBITMAP hbmMask,
const POINT& pointMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
int xDest,
int yDest,
HBITMAP hbmMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
const POINT& pointDest,
HBITMAP hbmMask,
DWORD dwROP = SRCCOPY) const throw();
hDestDC
Handel ke modul yang dapat dieksekusi berisi sumber daya.
xDest
Koordinat x, di unit logis, dari sudut kiri atas persegi panjang tujuan.
yDest
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.
nDestWidth
Lebar, dalam unit logis, persegi panjang tujuan dan bitmap sumber.
nDestHeight
Tinggi, dalam unit logis, persegi panjang tujuan dan bitmap sumber.
xSrc
Koordinat x logis dari sudut kiri atas bitmap sumber.
ySrc
Koordinat y logis dari sudut kiri atas bitmap sumber.
hbmMask
Tangani ke bitmap mask monokrom yang dikombinasikan dengan bitmap warna dalam konteks perangkat sumber.
xMask
Offset piksel horizontal untuk bitmap mask yang ditentukan oleh hbmMask
parameter .
yMask
Offset piksel vertikal untuk bitmap mask yang ditentukan oleh hbmMask
parameter .
dwROP
Menentukan kode operasi raster terner latar depan dan latar belakang yang digunakan metode untuk mengontrol kombinasi data sumber dan tujuan. Kode operasi raster latar belakang disimpan dalam byte urutan tinggi dari kata urutan tinggi dari nilai ini; kode operasi raster latar depan disimpan dalam byte urutan rendah dari kata urutan tinggi dari nilai ini; kata berurutan rendah dari nilai ini diabaikan, dan harus nol. Untuk diskusi latar depan dan latar belakang dalam konteks metode ini, lihat MaskBlt
di Windows SDK. Untuk daftar kode operasi raster umum, lihat BitBlt
di Windows SDK.
rectDest
Referensi ke RECT
struktur, mengidentifikasi tujuan.
pointSrc
Struktur POINT
yang menunjukkan sudut kiri atas persegi panjang sumber.
pointMask
Struktur POINT
yang menunjukkan sudut kiri atas bitmap mask.
pointDest
Referensi ke POINT
struktur yang mengidentifikasi sudut kiri atas persegi panjang tujuan, dalam unit logis.
Bukan nol jika berhasil, jika tidak, 0.
Metode ini hanya berlaku untuk Windows NT, versi 4.0 dan yang lebih baru.
Gunakan operator ini untuk mendapatkan handel Windows GDI objek yang CImage
terpasang. Operator ini adalah operator transmisi, yang mendukung penggunaan HBITMAP
langsung objek.
Melakukan transfer bit-block dari persegi panjang dalam konteks perangkat sumber ke dalam parallelogram dalam konteks perangkat tujuan.
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
HBITMAP hbmMask = NULL) const throw();
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
HBITMAP hbmMask = NULL,
int xMask = 0,
int yMask = 0) const throw();
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
const RECT& rectSrc,
HBITMAP hbmMask = NULL,
const POINT& pointMask = CPoint(0, 0)) const throw();
hDestDC
Handel ke konteks perangkat tujuan.
pPoints
Penunjuk ke array tiga titik dalam ruang logis yang mengidentifikasi tiga sudut paralelogram tujuan. Sudut kiri atas persegi panjang sumber dipetakan ke titik pertama dalam array ini, sudut kanan atas ke titik kedua dalam array ini, dan sudut kiri bawah ke titik ketiga. Sudut kanan bawah persegi panjang sumber dipetakan ke titik keempat implisit dalam parallelogram.
hbmMask
Handel ke bitmap monokrom opsional yang digunakan untuk menutupi warna persegi panjang sumber.
xSrc
Koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
ySrc
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
nSrcWidth
Lebar, dalam unit logis, dari persegi panjang sumber.
nSrcHeight
Tinggi, dalam unit logis, dari persegi panjang sumber.
xMask
Koordinat x dari sudut kiri atas bitmap monokrom.
yMask
Koordinat y dari sudut kiri atas bitmap monokrom.
rectSrc
Referensi ke struktur yang RECT
menentukan koordinat persegi panjang sumber.
pointMask
Struktur POINT
yang menunjukkan sudut kiri atas bitmap mask.
Bukan nol jika berhasil, jika tidak, 0.
Jika hbmMask
mengidentifikasi bitmap monokrom yang valid, PlgBit
gunakan bitmap ini untuk menutupi bit data warna dari persegi sumber.
Metode ini hanya berlaku untuk Windows NT, versi 4.0 dan yang lebih baru. Lihat PlgBlt
di Windows SDK untuk informasi selengkapnya.
Merilis konteks perangkat.
void ReleaseDC() const throw();
Karena hanya satu bitmap yang dapat dipilih ke dalam konteks perangkat pada satu waktu, Anda harus memanggil ReleaseDC
untuk setiap panggilan ke GetDC
.
Merilis sumber daya yang digunakan oleh GDI+.
void ReleaseGDIPlus() throw();
Metode ini harus dipanggil untuk membebaskan sumber daya yang dialokasikan oleh objek global CImage
. Lihat CImage::CImage
.
Menyimpan gambar ke aliran atau file yang ditentukan pada disk.
HRESULT Save(
IStream* pStream,
REFGUID guidFileType) const throw();
HRESULT Save(
LPCTSTR pszFileName,
REFGUID guidFileType = GUID_NULL) const throw();
pStream
Penunjuk ke objek COM IStream yang berisi data gambar file.
pszFileName
Penunjuk ke nama file untuk gambar.
guidFileType
Jenis file untuk menyimpan gambar sebagai. Bisa jadi salah satu dari yang berikut:
ImageFormatBMP
Gambar bitmap yang tidak dikompresi.ImageFormatPNG
Gambar terkompresi Portable Network Graphic (PNG).ImageFormatJPEG
Gambar terkompresi JPEG.ImageFormatGIF
Gambar terkompresi GIF.
Catatan
Untuk daftar lengkap konstanta, lihat Konstanta Format File Gambar di Windows SDK.
HRESULT
Standar .
Panggil fungsi ini untuk menyimpan gambar menggunakan nama dan jenis tertentu. guidFileType
Jika parameter tidak disertakan, ekstensi file nama file akan digunakan untuk menentukan format gambar. Jika tidak ada ekstensi yang disediakan, gambar akan disimpan dalam format BMP.
Mengatur nilai warna merah, hijau, biru (RGB) untuk rentang entri di palet bagian DIB.
void SetColorTable(
UINT iFirstColor,
UINT nColors,
const RGBQUAD* prgbColors) throw();
iFirstColor
Indeks tabel warna dari entri pertama yang diatur.
nColors
Jumlah entri tabel warna yang akan diatur.
prgbColors
Penunjuk ke array RGBQUAD
struktur untuk mengatur entri tabel warna.
Metode ini hanya mendukung bitmap bagian DIB.
Mengatur warna piksel pada lokasi tertentu di bitmap.
void SetPixel(int x, int y, COLORREF color) throw();
x
Lokasi horizontal piksel yang akan diatur.
y
Lokasi vertikal piksel yang akan diatur.
color
Warna tempat Anda mengatur piksel.
Metode ini gagal jika koordinat piksel terletak di luar wilayah kliping yang dipilih.
Mengatur warna piksel ke warna yang terletak di iIndex
palet warna.
void SetPixelIndexed(int x, int y, int iIndex) throw();
x
Lokasi horizontal piksel yang akan diatur.
y
Lokasi vertikal piksel yang akan diatur.
iIndex
Indeks warna di palet warna.
Mengatur piksel di lokasi yang ditentukan oleh x
dan y
ke warna yang ditunjukkan oleh r
, , g
dan b
, dalam gambar merah, hijau, biru (RGB).
void SetPixelRGB(
int x,
int y,
BYTE r,
BYTE g,
BYTE b) throw();
x
Lokasi horizontal piksel yang akan diatur.
y
Lokasi vertikal piksel yang akan diatur.
r
Intensitas warna merah.
g
Intensitas warna hijau.
b
Intensitas warna biru.
Parameter merah, hijau, dan biru masing-masing diwakili oleh angka antara 0 dan 255. Jika Anda mengatur ketiga parameter ke nol, warna gabungan yang dihasilkan adalah hitam. Jika Anda mengatur ketiga parameter ke 255, warna gabungan yang dihasilkan berwarna putih.
Mengatur warna pada lokasi terindeks tertentu sebagai transparan.
LONG SetTransparentColor(LONG iTransparentColor) throw();
iTransparentColor
Indeks, dalam palet warna, warna yang akan diatur ke transparan. Jika -1, tidak ada warna yang diatur ke transparan.
Indeks warna yang sebelumnya diatur sebagai transparan.
Menyalin bitmap dari konteks perangkat sumber ke konteks perangkat saat ini.
BOOL StretchBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
const RECT& rectDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
DWORD dwROP = SRCCOPY) const throw();
hDestDC
Handel ke konteks perangkat tujuan.
xDest
Koordinat x, di unit logis, dari sudut kiri atas persegi panjang tujuan.
yDest
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.
nDestWidth
Lebar, dalam unit logis, persegi panjang tujuan.
nDestHeight
Tinggi, dalam unit logis, dari persegi panjang tujuan.
dwROP
Operasi raster yang akan dilakukan. Kode operasi raster menentukan dengan tepat cara menggabungkan bit sumber, tujuan, dan pola (seperti yang didefinisikan oleh kuas yang saat ini dipilih) untuk membentuk tujuan. Lihat BitBlt
di Windows SDK untuk daftar kode operasi raster lainnya dan deskripsinya.
rectDest
Referensi ke RECT
struktur, mengidentifikasi tujuan.
xSrc
Koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
ySrc
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
nSrcWidth
Lebar, dalam unit logis, dari persegi panjang sumber.
nSrcHeight
Tinggi, dalam unit logis, dari persegi panjang sumber.
rectSrc
Referensi ke RECT
struktur, mengidentifikasi sumber.
Bukan nol jika berhasil, jika tidak, 0.
Untuk informasi selengkapnya, lihat StretchBlt
di Windows SDK.
Menyalin bitmap dari konteks perangkat sumber ke konteks perangkat saat ini.
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
UINT crTransparent = CLR_INVALID) const throw();
hDestDC
Handel ke konteks perangkat tujuan.
xDest
Koordinat x, di unit logis, dari sudut kiri atas persegi panjang tujuan.
yDest
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.
nDestWidth
Lebar, dalam unit logis, persegi panjang tujuan.
nDestHeight
Tinggi, dalam unit logis, dari persegi panjang tujuan.
crTransparent
Warna dalam bitmap sumber untuk diperlakukan sebagai transparan. Secara default, CLR_INVALID
, menunjukkan bahwa warna yang saat ini ditetapkan sebagai warna transparan dari gambar harus digunakan.
rectDest
Referensi ke RECT
struktur, mengidentifikasi tujuan.
xSrc
Koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
ySrc
Koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang sumber.
nSrcWidth
Lebar, dalam unit logis, dari persegi panjang sumber.
nSrcHeight
Tinggi, dalam unit logis, dari persegi panjang sumber.
rectSrc
Referensi ke RECT
struktur, mengidentifikasi sumber.
TRUE
jika berhasil, jika tidak FALSE
.
TransparentBlt
didukung untuk bitmap sumber 4 bit per piksel dan 8 bit per piksel. Gunakan CImage::AlphaBlend
untuk menentukan bitmap 32 bit per piksel dengan transparansi.
// Performs a transparent blit from the source image to the destination
// image using the images' current transparency settings
BOOL TransparentBlt(CImage* pSrcImage, CImage* pDstImage,
int xDest, int yDest, int nDestWidth, int nDestHeight)
{
HDC hDstDC = NULL;
BOOL bResult;
if(pSrcImage == NULL || pDstImage == NULL)
{
// Invalid parameter
return FALSE;
}
// Obtain a DC to the destination image
hDstDC = pDstImage->GetDC();
// Perform the blit
bResult = pSrcImage->TransparentBlt(hDstDC, xDest, yDest, nDestWidth, nDestHeight);
// Release the destination DC
pDstImage->ReleaseDC();
return bResult;
}
MMXSwarm
Contoh
SimpleImage
Contoh
Bitmap Independen Perangkat
CreateDIBSection
Komponen Desktop ATL COM
Bitmap Independen Perangkat