Метод ImageAttributes::GetAdjustedPalette (gdiplusimageattributes.h)
Метод ImageAttributes::GetAdjustedPalette настраивает цвета в палитре в соответствии с параметрами настройки указанной категории.
Синтаксис
Status GetAdjustedPalette(
[in, out] ColorPalette *colorPalette,
[in] ColorAdjustType colorAdjustType
);
Параметры
[in, out] colorPalette
Тип: ColorPalette*
Указатель на структуру ColorPalette , которая на входных данных содержит палитру для настройки, а на выходных данных получает скорректированную палитру.
[in] colorAdjustType
Тип: ColorPalette
Элемент перечисления ColorAdjustType , указывающий категорию, параметры настройки которой будут применены к палитре.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .
Комментарии
Объект ImageAttributes поддерживает параметры цвета и оттенков серого для пяти категорий корректировки: по умолчанию, точечный рисунок, кисть, перо и текст. Например, можно указать таблицу переназначение цвета для категории по умолчанию, другую таблицу переназначение цвета для категории точечных рисунков и другую таблицу переназначение цветов для категории пера.
При вызове ImageAttributes::GetAdjustedPalette можно указать категорию корректировки, которая используется для настройки цветов палитры. Например, если передать ColorAdjustTypeBitmap в метод ImageAttributes::GetAdjustedPalette , то для настройки цветов палитры будут использоваться параметры корректировки категории точечных рисунков.
Примеры
В следующем примере структура ColorPalette инициализируется четырьмя цветами: аква, черным, красным и зеленым. Код также создает объект ImageAttributes и задает таблицу переназначение точечных рисунков, чтобы зеленый цвет преобразовылся в синий. Затем код корректирует цвета палитры, передавая адрес палитры методу ImageAttributes::GetAdjustedPalette объекта ImageAttributes . Код отображает четыре цвета палитры дважды: один раз до корректировки и один раз после корректировки.
VOID Example_GetAdjustedPalette(HDC hdc)
{
Graphics graphics(hdc);
INT j;
// Create a palette that has four entries.
ColorPalette* palette =
(ColorPalette*)malloc(sizeof(ColorPalette) + 3 * sizeof(ARGB));
palette->Flags = 0;
palette->Count = 4;
palette->Entries[0] = 0xFF00FFFF; // aqua
palette->Entries[1] = 0xFF000000; // black
palette->Entries[2] = 0xFFFF0000; // red
palette->Entries[3] = 0xFF00FF00; // green
// Display the four palette colors with no adjustment.
SolidBrush brush(Color());
for(j = 0; j < 4; ++j)
{
brush.SetColor(palette->Entries[j]);
graphics.FillRectangle(&brush, 30*j, 0, 20, 20);
}
// Create a remap table that converts green to blue.
ColorMap map;
map.oldColor = Color(255, 0, 255, 0); // green
map.newColor = Color(255, 0, 0, 255); // blue
// Create an ImageAttributes object, and set its bitmap remap table.
ImageAttributes imAtt;
imAtt.SetRemapTable(1, &map, ColorAdjustTypeBitmap);
// Adjust the palette.
imAtt.GetAdjustedPalette(palette, ColorAdjustTypeBitmap);
// Display the four palette colors after the adjustment.
for(j = 0; j < 4; ++j)
{
brush.SetColor(palette->Entries[j]);
graphics.FillRectangle(&brush, 30*j, 30, 20, 20);
}
}
На следующем рисунке показаны выходные данные предыдущего кода. Обратите внимание, что зеленый цвет в исходной палитре был изменен на синий.
Требования
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusimageattributes.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |