Fungsi Bitmap (GDI+)

Windows GDI+ mengekspos API datar yang terdiri dari sekitar 600 fungsi, yang diimplementasikan dalam Gdiplus.dll dan dideklarasikan dalam Gdiplusflat.h. Fungsi dalam API datar GDI+ dibungkus oleh koleksi sekitar 40 kelas C++. Disarankan agar Anda tidak langsung memanggil fungsi di API datar. Setiap kali Anda melakukan panggilan ke GDI+, Anda harus melakukannya dengan memanggil metode dan fungsi yang disediakan oleh pembungkus C++. Layanan Dukungan Produk Microsoft tidak akan memberikan dukungan untuk kode yang memanggil API datar secara langsung. Untuk informasi selengkapnya tentang menggunakan metode pembungkus ini, lihat GDI+ Flat API.

Fungsi API datar berikut dibungkus oleh kelas Bitmap C++.

Fungsi Bitmap dan Metode Pembungkus yang Sesuai

Fungsi datar Metode pembungkus Deskripsi
GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream* stream, GpBitmap **bitmap) Bitmap::Bitmap Membuat objekbitmap::Bitmap berdasarkan aliran. Fungsi ini tidak menggunakan Image Color Management (ICM). Ini dipanggil ketika useEmbeddedColorManagement parameter konstruktor Bitmap::Bitmap diatur ke FALSE.
GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR* nama file, GpBitmap **bitmap) Bitmap::Bitmap Membuat objekbitmap::Bitmap berdasarkan file gambar. Fungsi ini tidak menggunakan ICM. Ini dipanggil ketika useEmbeddedColorManagement parameter konstruktor Bitmap::Bitmap diatur ke FALSE.
GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream* stream, GpBitmap **bitmap) Bitmap::Bitmap Membuat objekbitmap::Bitmap berdasarkan aliran. Fungsi ini menggunakan ICM. Ini dipanggil ketika parameter useEmbeddedColorManagement dari konstruktor Bitmap::Bitmap diatur ke TRUE.
GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR* nama file, GpBitmap **bitmap) Bitmap::Bitmap Membuat objekbitmap::Bitmap berdasarkan file gambar. Fungsi ini menggunakan ICM. Ini dipanggil ketika parameter useEmbeddedColorManagement dari konstruktor Bitmap::Bitmap diatur ke TRUE.
GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(lebar INT, tinggi INT, int stride, format PixelFormat, BYTE* scan0, GpBitmap** bitmap) Bitmap::Bitmap Membuat objek Bitmap::Bitmap berdasarkan array byte bersama dengan informasi ukuran dan format.
GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(lebar INT, tinggi INT, target GpGraphics*, bitmap GpBitmap**) Bitmap::Bitmap Membuat objekBitmap::Bitmapberdasarkan objekGrafis, lebar, dan tinggi.
GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7* surface, GpBitmap** bitmap) Bitmap::Bitmap Membuat objek Bitmap::Bitmap berdasarkan permukaan DirectDraw. Objek Bitmap::Bitmap mempertahankan referensi ke permukaan DirectDraw hingga objek Bitmap::Bitmap dihapus atau keluar dari cakupan.
GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO* gdiBitmapInfo, VOID* gdiBitmapData, GpBitmap** bitmap) Bitmap::Bitmap Membuat objek Bitmap::Bitmap berdasarkan struktur BITMAPINFO dan array data piksel.
GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP hbm, HPALETTE hpal, GpBitmap** bitmap) Bitmap::Bitmap Membuat objekbitmap::Bitmap berdasarkan handel ke bitmap Windows Graphics Device Interface (GDI) dan handel ke palet GDI.
GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap* bitmap, HBITMAP* hbmReturn, latar belakang ARGB) Bitmap::GetHBITMAP Metodebitmap::GetHBITMAP membuat bitmap GDI dari objekbitmapini.
GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON hicon, GpBitmap** bitmap) Bitmap::Bitmap Membuat objekBitmapberdasarkan ikon.
GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap* bitmap, HICON* hbmReturn) Bitmap::GetHICON Metode Bitmap::GetHICON membuat ikon dari objekbitmapini.
GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE hInstance, GDIPCONST WCHAR* lpBitmapName, GpBitmap** bitmap) Bitmap::Bitmap Membuat objek Bitmap::Bitmap berdasarkan aplikasi atau handel instans DLL dan nama sumber daya bitmap.
GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL x, REAL y, lebar NYATA, tinggi NYATA, format PixelFormat, GpBitmap *srcBitmap, GpBitmap **dstBitmap) Bitmap::Clone Metode Bitmap::Clone membuat objekBitmapbaru dengan menyalin sebagian bitmap ini.
GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT x, INT y, lebar INT, tinggi INT, format PixelFormat, GpBitmap *srcBitmap, GpBitmap **dstBitmap) Bitmap::Clone Metode Bitmap::Clone membuat objekBitmapbaru dengan menyalin sebagian bitmap ini.
GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap* bitmap, GDIPCONST GpRect* rect, bendera UINT, format PixelFormat, BitmapData* lockedBitmapData) Bitmap::LockBits Metode Bitmap::LockBits mengunci bagian persegi panjang bitmap ini dan menyediakan buffer sementara yang dapat Anda gunakan untuk membaca atau menulis data piksel dalam format tertentu. Setiap data piksel yang Anda tulis ke buffer disalin ke objekbitmapsaat Anda memanggil Bitmap::UnlockBits.
GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap* bitmap, BitmapData* lockedBitmapData) Bitmap::UnlockBits Metode Bitmap::UnlockBits membuka sebagian bitmap ini yang sebelumnya dikunci oleh panggilan ke Bitmap::LockBits.
GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap* bitmap, INT x, INT y, ARGB *color) Bitmap::GetPixel Metode Bitmap::GetPixel mendapatkan warna piksel tertentu dalam bitmap ini.
GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap* bitmap, INT x, INT y, warna ARGB) Bitmap::SetPixel Metode Bitmap::SetPixel mengatur warna piksel tertentu dalam bitmap ini.
GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap* bitmap, REAL xdpi, REAL ydpi) Bitmap::SetResolution Metode Bitmap::SetResolution mengatur resolusi objekBitmapini.
GpStatus WINGDIPAPI GdipBitmapConvertFormat(IN GpBitmap *pInputBitmap, format PixelFormat, DitherType dithertype, PaletteType palettetype, ColorPalette *palette, REAL alphaThresholdPercent) Bitmap::ConvertFormat Metode Bitmap::ConvertFormat mengonversi bitmap ke format piksel tertentu. Data piksel asli dalam bitmap digantikan oleh data piksel baru.
GpStatus WINGDIPAPI GdipInitializePalette(OUT ColorPalette *palette, PaletteType palettetype, INT optimalColors, BOOL useTransparentColor, GpBitmap *bitmap) Bitmap::InitializePalette Metode Bitmap::InitializePalette menginisialisasi palet warna standar, optimal, atau kustom.
GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap* bitmap, CGpEffect *effect, RECT *roi, BOOL useAuxData, VOID **auxData, INT *auxDataSize) Bitmap::ApplyEffect Metode Bitmap::ApplyEffect mengubah objekbitmapini dengan menerapkan efek yang ditentukan.
GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap **inputBitmaps, INT numInputs, CGpEffect *effect, RECT *roi, RECT *outputRect, GpBitmap **outputBitmap, BOOL useAuxData, VOID **auxData, INT *auxDataSize) Bitmap::ApplyEffect Metode Bitmap::ApplyEffect membuat objekBitmapbaru dengan menerapkan efek yang ditentukan ke objek Bitmap yang ada.
GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap* bitmap, DALAM format HistogramFormat, DALAM UINT NumberOfEntries, OUT UINT *channel0, OUT UINT *channel1, OUT UINT *channel2, OUT UINT *channel3) Bitmap::GetHistogram Metode Bitmap::GetHistogram mengembalikan satu atau beberapa histogram untuk saluran warna tertentu dari objekBitmapini.
GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(DALAM format HistogramFormat, OUT UINT *NumberOfEntries) Bitmap::GetHistogramSize Bitmap::GetHistogramSize mengembalikan jumlah elemen (dalam array UINT) yang harus Anda alokasikan sebelum memanggil metode Bitmap::GetHistogram objekBitmap.
Status __stdcall GdipCreateEffect(const GUID guid, CGpEffect **effect) Efek Konstruktor semua turunan Effect kelas memanggil GdipCreateEffect. Misalnya, konstruktor Blur melakukan panggilan berikut: GdipCreateEffect(BlurEffectGuid, &nativeEffect); BlurEffectGuid adalah konstanta yang ditentukan dalam Gdipluseffects.h.
Status __stdcall GdipDeleteEffect(CGpEffect *effect) virtual ~Effect() Membersihkan sumber daya yang digunakan oleh objekbitmap.
Status __stdcall GdipGetEffectParameterSize(CGpEffect *effect, UINT *size) Effect::GetParameterSize Metode Effect::GetParameterSize mendapatkan ukuran total, dalam byte, dari parameter yang saat ini ditetapkan untukEfekini. Metode Effect::GetParameterSize biasanya dipanggil pada objek yang merupakan instans turunan Effect class.
Status __stdcall GdipSetEffectParameters(CGpEffect *effect, const VOID *params, const UINT size) Efek Setiap turunan kelas Effect memiliki metode SetParameters yang memanggil metode yang dilindungi Effect::SetParameters, yang pada gilirannya memanggil GdipSetEffectParameters. Misalnya, metode Blur::SetParameters melakukan panggilan berikut: Effect::SetParameters(parameters, size).
Status __stdcall GdipGetEffectParameters(CGpEffect *effect, UINT *size, VOID *params) Efek Setiap turunan kelas Effect memiliki metode GetParameters yang memanggil metode yang dilindungi Effect::GetParameters, yang pada gilirannya memanggil GdipSetEffectParameters. Misalnya, metode Blur::GetParameters melakukan panggilan berikut: Effect::GetParameters(parameters, size).
GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum control, void * param) Tidak dipanggil oleh pembungkus Digunakan untuk pengujian internal GDI+. Menentukan perubahan perilaku pemrosesan gambar. Arti parameter param bervariasi tergantung pada nilai yang diteruskan dalam parameter kontrol.
Jika parameter kontrol diatur ke TestControlForceBilinear, param menunjuk ke nilai jenis BOOL. Jika nilai tersebut TRUE dan mode interpolasi saat ini adalah apa pun selain InterpolationModeNearestNeighbor, maka algoritmaInterpolationModeBilineardigunakan. Jika nilai yang ditunjukkan oleh paramFALSE atau jika mode interpolasi saat ini InterpolationModeNearestNeighbor, maka perilaku GDI+ tidak berubah.
Jika parameter kontrol diatur ke TestControlNoICM, param menunjuk ke nilai jenis BOOL. Jika nilai tersebut TRUE, profil ICM diabaikan saat gambar dimuat ke dalam memori. Jika nilai yang ditunjukkan oleh param FALSE, maka perilaku GDI+ tidak berubah.
Jika parameter kontrol diatur ke TestControlGetBuildNumber, param adalah parameter output yang menunjuk ke variabel bilangan bulat 32-bit. Variabel tersebut menerima nomor build GDI+.
GdipTestControl tidak aman utas; ini mengasumsikan bahwa hanya ada satu utas menggunakan GDI+. Jika Anda memanggil GdipTestControl di lingkungan multithreaded, hasilnya tidak dapat diprediksi.
Enumerasi GpTestControlEnum memiliki tiga elemen: TestControlForceBilinear = 0, TestControlNoICM = 1, dan TestControlGetBuildNumber = 2.