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:
- Membuat objek Gambar .
- Membuat objek ImageAttributes .
- Teruskan ColorChannelFlagsC ke metode ImageAttributes::SetOutputChannel dari objek ImageAttributes .
- Berikan nama jalur file profil warna ke metode ImageAttributes::SetOutputChannelColorProfile dari objek ImageAttributes .
- Teruskan alamat objek Image dan ImageAttributes ke metode DrawImage .
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.
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
ImageAttributes::ClearOutputChannel
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