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


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

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

Bitmap

Цвет

Coloradjusttype

ColorMap

Изображение

Атрибуты ImageAttributes

ImageAttributes::ClearRemapTable

ImageAttributes::SetBrushRemapTable

ImageAttributes::SetRemapTable

Метафайл

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