Поделиться через


Метод ImageAttributes::SetRemapTable (gdiplusimageattributes.h)

Метод ImageAttributes::SetRemapTable задает таблицу цветового сопоставления для указанной категории.

Синтаксис

Status SetRemapTable(
  [in]           UINT            mapSize,
  [in]           const ColorMap  *map,
  [in, optional] ColorAdjustType type
);

Параметры

[in] mapSize

Тип: UINT

INT , указывающий количество элементов в массиве карты .

[in] map

Тип: const ColorMap*

Указатель на массив структур ColorMap , определяющих цветовую карту.

[in, optional] type

Тип: ColorAdjustType

Элемент перечисления ColorAdjustType , указывающий категорию, для которой задана таблица цветового переназначения. Значение по умолчанию — ColorAdjustTypeDefault.

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .

Комментарии

Таблица переназначения цветов — это массив структур ColorMap . Каждая структура ColorMap имеет два объекта Color : один из которых задает старый цвет, а второй — соответствующий новый цвет. Во время отрисовки любой цвет, соответствующий одному из старых цветов в таблице переназначения, изменяется на соответствующий новый цвет.

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

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

Как только вы укажете параметр настройки цветов или оттенков серого для определенной категории, параметры настройки по умолчанию больше не применяются к этой категории. Например, предположим, что вы указали коллекцию параметров корректировки для категории по умолчанию. Если задать таблицу цветового переназначения для категории пера, передав ColorAdjustTypePen в метод ImageAttributes::SetRemapTable , ни один из параметров настройки по умолчанию не будет применяться к ручкам.

Примеры

В следующем примере создается объект Image на основе файла .bmp, а затем рисуется изображение. Код создает объект ImageAttributes и задает таблицу повторного сопоставления по умолчанию, чтобы красный цвет преобразовылся в синий. Затем код снова рисует изображение с помощью настройки цвета, указанной в таблице повторного сопоставления.


VOID Example_SetRemapTable(HDC hdc)
{
   Graphics graphics(hdc);

   // Create an Image object based on a .bmp file.
   // The image has one red stripe and one green stripe.
   Image image(L"RedGreenStripes.bmp");

   // Create an ImageAttributes object and set its remap table.
   ImageAttributes imageAtt;
   ColorMap cMap;
   cMap.oldColor = Color(255, 255, 0, 0);  // red 
   cMap.newColor = Color(255, 0, 0, 255);  // blue
   imageAtt.SetRemapTable(12, &cMap,
      ColorAdjustTypeDefault);

   // Draw the image with no color adjustment.
   graphics.DrawImage(&image, 10, 10, image.GetWidth(), image.GetHeight());
 
   // Draw the image with red converted to blue.
   graphics.DrawImage(&image,
      Rect(100, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imageAtt);
}
				

На следующем рисунке показаны выходные данные предыдущего кода.

Иллюстрация, показывающая прямоугольник с красной и зеленой областями, а затем тот же прямоугольник с красной областью заменена синей

Требования

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

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

Bitmap

Цвет

Coloradjusttype

Карта цвета

Изображение

ImageAttributes

ImageAttributes::ClearRemapTable

Метафайл

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