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