Metode PathGradientBrush::GetInterpolationColors (gdipluspath.h)
Metode PathGradientBrush::GetInterpolationColors mendapatkan warna preset dan posisi campuran yang saat ini ditentukan untuk sikat gradien jalur ini.
Sintaks
Status GetInterpolationColors(
[out] Color *presetColors,
[out] REAL *blendPositions,
[in] INT count
);
Parameter
[out] presetColors
Jenis: Warna*
Penunjuk ke array yang menerima warna prasetel. Warna indeks tertentu dalam array presetColors sesuai dengan posisi campuran indeks yang sama dalam array blendPositions .
[out] blendPositions
Jenis: REAL*
Penunjuk ke array yang menerima posisi campuran. Setiap posisi campuran adalah angka dari 0 hingga 1, di mana 0 menunjukkan batas gradien dan 1 menunjukkan titik tengah. Posisi campuran antara 0 dan 1 menunjukkan kumpulan semua titik yang merupakan pecahan jarak tertentu dari batas ke titik tengah. Misalnya, posisi campuran 0,7 menunjukkan kumpulan semua titik yang 70 persen dari jalan dari batas ke titik tengah.
[in] count
Jenis: INT
Bilangan bulat yang menentukan jumlah elemen dalam array presetColors . Ini sama dengan jumlah elemen dalam array blendPositions .
Nilai kembali
Jenis: Status
Jika metode berhasil, metode mengembalikan Ok, yang merupakan elemen dari enumerasi Status .
Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .
Keterangan
Sikat gradien jalur sederhana memiliki dua warna: warna batas dan warna tengah. Ketika Anda melukis dengan kuas seperti itu, warna berubah secara bertahap dari warna batas ke warna tengah saat Anda berpindah dari jalur batas ke titik tengah. Anda dapat membuat gradien yang lebih kompleks dengan menentukan array warna preset dan array posisi campuran.
Sebelum Anda memanggil metode PathGradientBrush::GetInterpolationColors , Anda harus mengalokasikan dua buffer: satu untuk menahan array warna preset dan satu untuk menahan array posisi campuran. Anda dapat memanggil metode PathGradientBrush::GetInterpolationColorCount dari objek PathGradientBrush untuk menentukan ukuran buffer yang diperlukan. Ukuran buffer warna adalah nilai pengembalian PathGradientBrush::GetInterpolationColorCount dikalikan dengan sizeof(Color). Ukuran buffer posisi adalah nilai PathGradientBrush::GetInterpolationColorCount dikalikan dengan sizeof( REAL).
Contoh
Contoh berikut membuat objek PathGradientBrush dari jalur segitiga. Kode mengatur warna prasetel ke merah, biru, dan aqua dan mengatur posisi campuran ke 0, 0,6, dan 1. Kode memanggil metode PathGradientBrush::GetInterpolationColorCount dari objek PathGradientBrush untuk mendapatkan jumlah warna preset yang saat ini diatur untuk kuas. Selanjutnya, kode mengalokasikan dua buffer: satu untuk menahan array warna preset, dan satu untuk menahan array posisi campuran. Panggilan ke metode PathGradientBrush::GetInterpolationColors dari objek PathGradientBrush mengisi buffer dengan warna preset dan posisi campuran. Akhirnya kode mengisi persegi kecil dengan masing-masing warna preset.
VOID Example_GetInterpColors(HDC hdc)
{
Graphics graphics(hdc);
// Create a path gradient brush from an array of points, and
// set the interpolation colors for that brush.
Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};
PathGradientBrush pthGrBrush(points, 3);
Color col[] = {
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
Color(255, 0, 255, 255)}; // aqua
REAL pos[] = {
0.0f, // red at the boundary
0.6f, // blue 60 percent of the way from the boundary to the center
1.0f}; // aqua at the center
pthGrBrush.SetInterpolationColors(col, pos, 3);
// Obtain information about the path gradient brush.
INT colorCount = pthGrBrush.GetInterpolationColorCount();
Color* colors = new Color[colorCount];
REAL* positions = new REAL[colorCount];
pthGrBrush.GetInterpolationColors(colors, positions, colorCount);
// Fill a small square with each of the interpolation colors.
SolidBrush solidBrush(Color(255, 255, 255, 255));
for(INT j = 0; j < colorCount; ++j)
{
solidBrush.SetColor(colors[j]);
graphics.FillRectangle(&solidBrush, 15*j, 0, 10, 10);
}
delete [] colors;
delete [] positions;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP, Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | gdipluspath.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
Mengisi Bentuk dengan Gradien Warna
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk