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