Метод 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);
   }
}
				

На следующем рисунке показаны выходные данные предыдущего кода. Обратите внимание, что зеленый цвет в исходной палитре был изменен на синий.

Иллюстрация с двумя строками цветных прямоугольников; последний из которых зеленый в строке 1, синий в строке 2

Требования

   
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdiplusimageattributes.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Bitmap

Цвет

Coloradjusttype

Карта цвета

ColorPalette

Изображение

ImageAttributes

Метафайл

PaletteFlags

Перекрашивание