Metode ImageAttributes::SetOutputChannelColorProfile (gdiplusimageattributes.h)

Metode ImageAttributes::SetOutputChannelColorProfile mengatur file profil warna saluran output untuk kategori tertentu.

Sintaks

Status SetOutputChannelColorProfile(
  [in]           const WCHAR     *colorProfileFilename,
  [in, optional] ColorAdjustType type
);

Parameter

[in] colorProfileFilename

Jenis: const WCHAR*

Nama jalur file profil warna. Jika file profil warna ada di direktori %SystemRoot%\System32\Spool\Drivers\Color, maka parameter ini bisa menjadi nama file. Jika tidak, parameter ini harus menjadi nama jalur yang sepenuhnya memenuhi syarat.

[in, optional] type

Jenis: ColorAdjustType

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

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

Anda dapat menggunakan metode ImageAttributes::SetOutputChannel dan ImageAttributes::SetOutputChannelColorProfile untuk mengonversi gambar ke ruang warna cyan-magenta-yellow-black (CMYK) dan memeriksa intensitas salah satu saluran warna CMYK. Misalnya, Anda menulis kode yang melakukan langkah-langkah berikut:

  1. Membuat objek Gambar .
  2. Membuat objek ImageAttributes .
  3. Teruskan ColorChannelFlagsC ke metode ImageAttributes::SetOutputChannel dari objek ImageAttributes .
  4. Berikan nama jalur file profil warna ke metode ImageAttributes::SetOutputChannelColorProfile dari objek ImageAttributes .
  5. Teruskan alamat objek Image dan ImageAttributes ke metode DrawImage .
Windows GDI+ akan menggunakan file profil warna untuk menghitung komponen sian dari setiap piksel dalam gambar, dan setiap piksel dalam gambar yang dirender akan menjadi bayangan abu-abu yang menunjukkan intensitas saluran siannya.

Objek ImageAttributes mempertahankan pengaturan warna dan skala abu-abu untuk lima kategori penyesuaian: default, bitmap, kuas, pena, dan teks. Misalnya, Anda dapat menentukan file profil warna saluran output untuk kategori default dan file profil warna 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 file profil warna saluran output untuk kategori bitmap dengan meneruskan ColorAdjustTypeBitmap ke metode ImageAttributes::SetOutputChannelColorProfile , 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 memanggil metode ImageAttributes::SetOutputChannelColorProfile untuk menentukan file profil untuk kategori bitmap. Panggilan ke ImageAttributes::SetOutputChannel mengatur saluran output (untuk kategori bitmap) ke cyan. 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_SetOutputProfile(HDC hdc)
{
   Graphics graphics(hdc);

   Image image(L"Mosaic2.bmp");
   ImageAttributes imAtt;
   UINT width = image.GetWidth();
   UINT height = image.GetHeight();

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

   imAtt.SetOutputChannelColorProfile(
      L"TEKPH600.ICM", ColorAdjustTypeBitmap);

   // 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); 
}
				

Kode sebelumnya, bersama dengan file Mosaic2.bmp dan Tekph600.icm, menghasilkan output berikut.

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

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

Lihat juga

ColorAdjustType

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannel