Metode ImageAttributes::SetOutputChannel (gdiplusimageattributes.h)

Metode ImageAttributes::SetOutputChannel mengatur saluran output CMYK untuk kategori tertentu.

Sintaks

Status SetOutputChannel(
  [in]           ColorChannelFlags channelFlags,
  [in, optional] ColorAdjustType   type
);

Parameter

[in] channelFlags

Jenis: ColorChannelFlags

Elemen enumerasi ColorChannelFlags yang menentukan saluran output.

[in, optional] type

Jenis: ColorAdjustType

Elemen enumerasi ColorAdjustType yang menentukan kategori tempat saluran output diatur. Nilai defaultnya adalah ColorAdjustTypeDefault.

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

Anda dapat menggunakan metode ImageAttributes::SetOutputChannel untuk mengonversi gambar menjadi ruang warna cyan-magenta-yellow-black (CMYK) dan memeriksa intensitas salah satu saluran warna CMYK. Misalnya, Anda membuat objek ImageAttributes dan mengatur saluran output bitmap-nya ke ColorChannelFlagsC. Jika Anda meneruskan alamat objek ImageAttributes tersebut ke metode DrawImage , komponen sian dari setiap piksel dihitung, dan setiap piksel dalam gambar yang dirender adalah bayangan abu-abu yang menunjukkan intensitas saluran siannya. Demikian pula, Anda dapat merender gambar yang menunjukkan intensitas saluran magenta, kuning, dan hitam.

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

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 bitmap, maka pengaturan default berlaku untuk kategori bitmap.

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 kumpulan pengaturan penyesuaian untuk kategori default. Jika Anda mengatur saluran output untuk kategori bitmap dengan meneruskan ColorAdjustTypeBitmap ke metode ImageAttributes::SetOutputChannel , maka tidak ada pengaturan penyesuaian default yang akan berlaku untuk bitmap.

Contoh

Contoh berikut membuat objek Gambar dan memanggil metode DrawImage untuk menggambar gambar. Kemudian kode membuat objek ImageAttributes dan mengatur saluran output bitmap-nya ke sian (ColorChannelFlagsC). Kode memanggil DrawImage untuk kedua kalinya, meneruskan alamat objek Gambar dan alamat objek ImageAttributes . Saluran sian dari setiap piksel dihitung, dan gambar yang dirender menunjukkan intensitas saluran sian sebagai nuansa abu-abu. Kode ini memanggil DrawImage tiga kali lagi untuk menunjukkan intensitas saluran magenta, kuning, dan hitam.


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

   Image image(L"Mosaic2.bmp");

   // Draw the image unaltered.
   graphics.DrawImage(&image, 10, 10, width, height);

   UINT width = image.GetWidth();
   UINT height = image.GetHeight();

   ImageAttributes imAtt;

   // Draw the image, showing the intensity of the cyan channel.
   imAtt.SetOutputChannel(ColorChannelFlagsC, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(110, 10, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the magenta channel.
   imAtt.SetOutputChannel(ColorChannelFlagsM, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(210, 10, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the yellow channel.
   imAtt.SetOutputChannel(ColorChannelFlagsY, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(10, 110, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the black channel.
   imAtt.SetOutputChannel(ColorChannelFlagsK, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(110, 110, width, height),  // dest rect
      0, 0, width, height,            // source rect
      UnitPixel,
      &imAtt); 
}
				

Ilustrasi berikut menunjukkan output kode sebelumnya.

Ilustrasi memperlihatkan lima versi satu gambar: pertama berwarna, lalu dalam empat pola skala abu-abu yang berbeda

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

ColorAdjustType

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannelColorProfile