ImageAttributes::GetAdjustedPalette method (gdiplusimageattributes.h)

Metode ImageAttributes::GetAdjustedPalette menyesuaikan warna dalam palet sesuai dengan pengaturan penyesuaian kategori tertentu.

Sintaks

Status GetAdjustedPalette(
  [in, out] ColorPalette    *colorPalette,
  [in]      ColorAdjustType colorAdjustType
);

Parameter

[in, out] colorPalette

Jenis: ColorPalette*

Penunjuk ke struktur ColorPalette yang pada input, berisi palet yang akan disesuaikan dan, pada output, menerima palet yang disesuaikan.

[in] colorAdjustType

Jenis: ColorPalette

Elemen enumerasi ColorAdjustType yang menentukan kategori yang pengaturan penyesuaiannya akan diterapkan ke palet.

Menampilkan nilai

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

Objek ImageAttributes mempertahankan pengaturan warna dan skala abu-abu untuk lima kategori penyesuaian: default, bitmap, kuas, pena, dan teks. Misalnya, Anda dapat menentukan tabel remap warna untuk kategori default, tabel remap warna yang berbeda untuk kategori bitmap, dan masih tabel remap warna yang berbeda untuk kategori pena.

Saat Anda memanggil ImageAttributes::GetAdjustedPalette, Anda dapat menentukan kategori penyesuaian yang digunakan untuk menyesuaikan warna palet. Misalnya, jika Anda meneruskan ColorAdjustTypeBitmap ke metode ImageAttributes::GetAdjustedPalette , maka pengaturan penyesuaian kategori bitmap digunakan untuk menyesuaikan warna palet.

Contoh

Contoh berikut menginisialisasi struktur ColorPalette dengan empat warna: aqua, hitam, merah, dan hijau. Kode ini juga membuat objek ImageAttributes dan mengatur tabel remap bitmap-nya sehingga hijau akan dikonversi menjadi biru. Kemudian kode menyesuaikan warna palet dengan meneruskan alamat palet ke metode ImageAttributes::GetAdjustedPalette dari objek ImageAttributes . Kode menampilkan empat warna palet dua kali: sekali sebelum penyesuaian dan sekali setelah penyesuaian.


VOID Example_GetAdjustedPalette(HDC hdc)
{
   Graphics graphics(hdc);
   INT j;

   // Create a palette that has four entries.
   ColorPalette* palette = 
      (ColorPalette*)malloc(sizeof(ColorPalette) + 3 * sizeof(ARGB));
   palette->Flags = 0;
   palette->Count = 4;

   palette->Entries[0] = 0xFF00FFFF;   // aqua
   palette->Entries[1] = 0xFF000000;   // black
   palette->Entries[2] = 0xFFFF0000;   // red
   palette->Entries[3] = 0xFF00FF00;   // green
  
   // Display the four palette colors with no adjustment.
   SolidBrush brush(Color());
   for(j = 0; j < 4; ++j)
   {
      brush.SetColor(palette->Entries[j]);
      graphics.FillRectangle(&brush, 30*j, 0, 20, 20);
   }

   // Create a remap table that converts green to blue.
   ColorMap map;
      map.oldColor = Color(255, 0, 255, 0);  // green
      map.newColor = Color(255, 0, 0, 255);  // blue

   // Create an ImageAttributes object, and set its bitmap remap table.
   ImageAttributes imAtt;
   imAtt.SetRemapTable(1, &map, ColorAdjustTypeBitmap);

   // Adjust the palette.
   imAtt.GetAdjustedPalette(palette, ColorAdjustTypeBitmap);

   // Display the four palette colors after the adjustment.
   for(j = 0; j < 4; ++j)
   {
      brush.SetColor(palette->Entries[j]);
      graphics.FillRectangle(&brush, 30*j, 30, 20, 20);
   }
}
				

Ilustrasi berikut menunjukkan output kode sebelumnya. Perhatikan bahwa hijau di palet asli diubah menjadi biru.

Ilustrasi dengan dua baris persegi panjang berwarna; yang terakhir berwarna hijau di Baris 1, biru di Baris 2

Persyaratan

   
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 gdiplusimageattributes.h (termasuk Gdiplus.h)
Pustaka Gdiplus.lib
DLL Gdiplus.dll

Lihat juga

Bitmap

Warna

ColorAdjustType

Peta Warna

ColorPalette

Gambar

ImageAttributes

Metafile

PaletFlags

Pewarnaan ulang