Метод ImageAttributes::SetOutputChannelColorProfile (gdiplusimageattributes.h)
Метод ImageAttributes::SetOutputChannelColorProfile задает файл цветового профиля выходного канала для указанной категории.
Синтаксис
Status SetOutputChannelColorProfile(
[in] const WCHAR *colorProfileFilename,
[in, optional] ColorAdjustType type
);
Параметры
[in] colorProfileFilename
Тип: const WCHAR*
Имя пути к файлу цветового профиля. Если файл цветового профиля находится в каталоге %SystemRoot%\System32\Spool\Drivers\Color, то этим параметром может быть имя файла. В противном случае этот параметр должен быть полным путем к файлу.
[in, optional] type
Тип: ColorAdjustType
Элемент перечисления ColorAdjustType , указывающий категорию, для которой задан файл цветового профиля выходного канала. Значение по умолчанию — ColorAdjustTypeDefault.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .
Комментарии
Вы можете использовать методы ImageAttributes::SetOutputChannel и ImageAttributes::SetOutputChannelColorProfile , чтобы преобразовать изображение в цветовое пространство CMYK с голубой пурпурной желто-черной (CMYK) и проверить интенсивность одного из каналов цвета CMYK. Например, предположим, что вы пишете код, который выполняет следующие действия:
- Создайте объект Image .
- Создайте объект ImageAttributes .
- Передайте ColorChannelFlagsC в метод ImageAttributes::SetOutputChannel объекта ImageAttributes .
- Передайте имя пути к файлу цветового профиля методу ImageAttributes::SetOutputChannelColorProfile объекта ImageAttributes .
- Передайте адреса объектов Image и ImageAttributes методу DrawImage .
Объект ImageAttributes поддерживает параметры цвета и оттенков серого для пяти категорий корректировки: по умолчанию, растрового изображения, кисти, пера и текста. Например, можно указать файл цветового профиля выходного канала для категории по умолчанию и другой файл цветового профиля выходного канала для категории растрового изображения.
Параметры настройки цвета и оттенков серого по умолчанию применяются ко всем категориям, у которых нет собственных параметров настройки. Например, если вы никогда не указываете параметры корректировки для категории точечного рисунка, то параметры по умолчанию применяются к категории растрового рисунка.
Как только вы указываете параметр настройки цвета или оттенков серого для определенной категории, параметры настройки по умолчанию больше не применяются к этой категории. Например, предположим, что вы указали коллекцию параметров корректировки для категории по умолчанию. Если задать файл цветового профиля выходного канала для категории растрового изображения путем передачи ColorAdjustTypeBitmap в метод ImageAttributes::SetOutputChannelColorProfile , ни один из параметров настройки по умолчанию не будет применяться к растровым изображениям.
Примеры
В следующем примере создается объект Image и вызывается метод DrawImage для рисования изображения. Затем код создает объект ImageAttributes и вызывает его метод ImageAttributes::SetOutputChannelColorProfile , чтобы указать файл профиля для категории растрового рисунка. Вызов ImageAttributes::SetOutputChannel задает для выходного канала (для категории точечного изображения) значение cyan. Код вызывает DrawImage во второй раз, передавая адрес объекта Image и адрес объекта ImageAttributes . Вычисляется голубой канал каждого пикселя, а отображаемое изображение показывает интенсивность голубого канала в виде оттенков серого. Код вызывает DrawImage еще три раза, чтобы показать интенсивность каналов пурпурного, желтого и черного.
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);
}
Приведенный выше код вместе с файлами Mosaic2.bmp и Tekph600.icm выдает следующие выходные данные.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusimageattributes.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
ImageAttributes::ClearOutputChannel