Metode ImageAttributes::ClearBrushRemapTable (gdiplusimageattributes.h)

Metode ImageAttributes::ClearBrushRemapTable menghapus tabel color-remap kuas dari objek ImageAttributes ini.

Sintaks

Status ClearBrushRemapTable();

Mengembalikan 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 satu tabel remap warna untuk kategori default, tabel remap warna yang berbeda untuk kategori bitmap, dan masih tabel remap warna yang berbeda untuk kategori kuas.

Pengaturan penyesuaian warna dan abu-abu default berlaku untuk semua kategori yang tidak memiliki pengaturan penyesuaian sendiri. Misalnya, jika Anda tidak pernah menentukan pengaturan penyesuaian apa pun untuk kategori kuas, maka pengaturan default berlaku untuk kategori kuas.

Segera setelah Anda menentukan pengaturan penyesuaian warna atau skala abu-abu untuk kategori tertentu, pengaturan penyesuaian default tidak lagi berlaku untuk kategori tersebut. Misalnya, Anda menentukan tabel remap default yang mengonversi merah menjadi hijau dan Anda menentukan nilai gamma default 1,8. Jika Anda memanggil ImageAttributes::SetBrushRemapTable, maka tabel remap default (merah ke hijau) dan nilai gamma default (1,8) tidak akan berlaku untuk kuas. Jika nanti Anda memanggil ImageAttributes::ClearBrushRemapTable, kategori kuas tidak akan kembali ke tabel remap default; sebaliknya, kategori kuas tidak akan memiliki tabel remap. Demikian pula, kategori kuas tidak akan kembali ke nilai gamma default; sebaliknya, kategori kuas tidak akan memiliki nilai gamma.

Contoh

Contoh berikut membuat objek Gambar dari file .emf. Kode ini juga membuat objek ImageAttributes . Panggilan ke ImageAttributes::SetRemapTable mengatur tabel remap warna default objek ImageAttributes ke tabel yang mengonversi merah menjadi biru. Panggilan ke ImageAttributes::SetBrushRemapTable mengatur tabel remap kuas objek ImageAttributes ke tabel yang mengonversi merah menjadi hijau.

Kode memanggil DrawImage sekali untuk menggambar gambar tanpa penyesuaian warna. Kemudian kode memanggil DrawImage tiga kali lagi, setiap kali melewati alamat objek Gambar dan alamat objek ImageAttributes . Kedua kali gambar digambar (setelah panggilan ke ImageAttributes::SetRemapTable), semua warna merah dikonversi menjadi biru. Ketiga kalinya gambar digambar (setelah panggilan ke ImageAttributes::SetBrushRemapTable), semua warna merah yang dicat dengan kuas dikonversi menjadi hijau, dan sisanya berwarna merah dikonversi menjadi biru. Keempat kalinya gambar digambar (setelah panggilan ke ImageAttributes::ClearBrushRemapTable), semua merah yang dicat dengan kuas tetap tidak berubah, dan sisa merah dikonversi menjadi biru.


VOID Example_SetClearBrushRemap(HDC hdc)
{
   Graphics graphics(hdc);

   Image image(L"TestMetafile4.emf");
   ImageAttributes imAtt;

   ColorMap defaultMap;
   defaultMap.oldColor = Color(255, 255, 0, 0);   // red converted to blue
   defaultMap.newColor = Color(255, 0, 0, 255);

   ColorMap brushMap;
   brushMap.oldColor = Color(255, 255, 0, 0);     // red converted to green
   brushMap.newColor = Color(255, 0, 255, 0);

   // Set the default color-remap table.
   imAtt.SetRemapTable(1, &defaultMap, ColorAdjustTypeDefault);

   // Draw the image (metafile) using no color adjustment.
   graphics.DrawImage(
      &image,
      Rect(10, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel);

   // Draw the image (metafile) using default color adjustment.
   // All red is converted to blue.
   graphics.DrawImage(
      &image,
      Rect(10, 90, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);

   // Set the brush remap table.
   imAtt.SetBrushRemapTable(1, &brushMap);

   // Draw the image (metafile) using default and brush adjustment.
   // Red painted with a brush is converted to green.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 170, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);

   // Clear the brush remap table.
   imAtt.ClearBrushRemapTable();

   // Draw the image (metafile) using only default color adjustment.
   // Red painted with a brush gets no color adjustment.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 250, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);  
}
				

Kode sebelumnya, bersama dengan file tertentu, Testmetafile4.emf, menghasilkan output berikut. Elipsis di kolom kiri digambar dengan pena, dan elipsis di kolom kanan diisi dengan kuas. Perhatikan bahwa tabel remap default berlaku untuk elipsis yang digambar dengan pena. Tabel remap yang berlaku untuk elipsis yang diisi dengan kuas bervariasi sesuai dengan panggilan ImageAttributes::SetBrushRemapTable dan ImageAttributes::ClearBrushRemapTable .

Ilustrasi memperlihatkan empat elipsis kosong; yang pertama adalah merah dan sisanya biru, kemudian empat elipsis terisi: merah, biru, hijau, dan merah

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

Gambar

ImageAttributes

ImageAttributes::ClearRemapTable

ImageAttributes::SetBrushRemapTable

ImageAttributes::SetRemapTable

Metafile

Mewarnai ulang