Метод ImageAttributes::ClearBrushRemapTable (gdiplusimageattributes.h)
Метод ImageAttributes::ClearBrushRemapTable очищает таблицу цвета кисти этого объекта ImageAttributes .
Синтаксис
Status ClearBrushRemapTable();
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .
Комментарии
Объект ImageAttributes поддерживает параметры цвета и оттенков серого для пяти категорий корректировки: по умолчанию, растрового изображения, кисти, пера и текста. Например, можно указать одну таблицу переназначение цвета для категории по умолчанию, другую таблицу переназначение цветов для категории точечного рисунка и другую таблицу переназначение цветов для категории кисти.
Параметры настройки цвета и оттенков серого по умолчанию применяются ко всем категориям, у которых нет собственных параметров настройки. Например, если вы никогда не указываете параметры корректировки для категории кисти, то параметры по умолчанию применяются к категории кисти.
Как только вы указываете параметр настройки цвета или оттенков серого для определенной категории, параметры настройки по умолчанию больше не применяются к этой категории. Например, предположим, что вы указываете таблицу переназначения по умолчанию, которая преобразует красный цвет в зеленый, и задаете гамма-значение по умолчанию 1,8. При вызове ImageAttributes::SetBrushRemapTable таблица повторного сопоставления по умолчанию (от красного до зеленого) и гамма-значение по умолчанию (1.8) не будут применяться к кисти. При последующем вызове ImageAttributes::ClearBrushRemapTable категория кисти не будет отменить изменения в таблицу повторного сопоставления по умолчанию. Вместо этого категория кисти не будет содержать таблицу повторного сопоставления. Аналогичным образом категория кисти не будет отменить изменения к гамма-значению по умолчанию; вместо этого категория кисти не будет иметь гамма-значение.
Примеры
В следующем примере создается объект Image из EMF-файла. Код также создает объект ImageAttributes . Вызов ImageAttributes::SetRemapTable задает таблицу по умолчанию color-remap объекта ImageAttributes в таблицу, которая преобразует красный цвет в синий. Вызов ImageAttributes::SetBrushRemapTable задает таблицу переназначения кисти объекта ImageAttributes в таблицу, которая преобразует красный цвет в зеленый.
Код вызывает DrawImage один раз, чтобы нарисовать изображение без корректировки цвета. Затем код вызывает DrawImage еще три раза, каждый раз передавая адрес объекта Image и адрес объекта ImageAttributes . Во второй раз при рисовании изображения (после вызова ImageAttributes::SetRemapTable) красный цвет преобразуется в синий. При третьем рисовании изображения (после вызова ImageAttributes::SetBrushRemapTable) весь красный цвет, окрашенный кистью, преобразуется в зеленый, а остальная часть красного — в синий. В четвертый раз при рисовании изображения (после вызова ImageAttributes::ClearBrushRemapTable) все красные цвета, окрашенные кистью, остаются неизменными, а остальная часть красного цвета преобразуется в синий.
VOID Example_SetClearBrushRemap(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"TestMetafile4.emf");
ImageAttributes imAtt;
ColorMap defaultMap;
defaultMap.oldColor = Color(255, 255, 0, 0); // red converted to blue
defaultMap.newColor = Color(255, 0, 0, 255);
ColorMap brushMap;
brushMap.oldColor = Color(255, 255, 0, 0); // red converted to green
brushMap.newColor = Color(255, 0, 255, 0);
// Set the default color-remap table.
imAtt.SetRemapTable(1, &defaultMap, ColorAdjustTypeDefault);
// Draw the image (metafile) using no color adjustment.
graphics.DrawImage(
&image,
Rect(10, 10, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel);
// Draw the image (metafile) using default color adjustment.
// All red is converted to blue.
graphics.DrawImage(
&image,
Rect(10, 90, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Set the brush remap table.
imAtt.SetBrushRemapTable(1, &brushMap);
// Draw the image (metafile) using default and brush adjustment.
// Red painted with a brush is converted to green.
// All other red is converted to blue (default).
graphics.DrawImage(
&image,
Rect(10, 170, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Clear the brush remap table.
imAtt.ClearBrushRemapTable();
// Draw the image (metafile) using only default color adjustment.
// Red painted with a brush gets no color adjustment.
// All other red is converted to blue (default).
graphics.DrawImage(
&image,
Rect(10, 250, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
}
Приведенный выше код вместе с определенным файлом Testmetafile4.emf выдает следующие выходные данные. Многоточие в левом столбце нарисовано пером, а многоточие в правом столбце — кистью. Обратите внимание, что таблица переназначений по умолчанию применяется к многоточиям, нарисованным пером. Таблица повторного сопоставления, которая применяется к многоточию, заполненной кистью, зависит от вызовов ImageAttributes::SetBrushRemapTable и ImageAttributes::ClearBrushRemapTable .
Требования
Минимальная версия клиента | Windows XP, Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusimageattributes.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
ImageAttributes::ClearRemapTable
ImageAttributes::SetBrushRemapTable