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


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

Метод ImageAttributes::ClearNoOp очищает параметр NoOp для указанной категории.

Синтаксис

Status ClearNoOp(
  [in, optional] ColorAdjustType type
);

Параметры

[in, optional] type

Тип: ColorAdjustType

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

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

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

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

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

Комментарии

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

myImageAttributes.SetNoOp(ColorAdjustTypeBrush);

Следующая инструкция восстанавливает настройку цвета кисти, которая была выполнена до вызова ImageAttributes::SetNoOp:

myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);

Примеры

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

Код вызывает DrawImage три раза, каждый раз передавая адрес объекта Image и адрес объекта ImageAttributes . Когда изображение рисуется в первый раз, весь красный цвет, окрашенный кистью, преобразуется в зеленый. (Красный цвет, нарисованный ручками, не изменяется.) Перед вторым рисованием изображения код вызывает метод ImageAttributes::SetNoOp объекта ImageAttributes . Поэтому, когда изображение рисуется во второй раз, кисти не применяются никакие корректировки цвета. Перед тем как изображение будет отрисовано в третий раз, код вызывает метод ImageAttributes::ClearNoOp , который восстанавливает параметры настройки цвета кисти. Таким образом, когда изображение рисуется в третий раз, весь красный цвет, окрашенный кистью, преобразуется в зеленый.


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

   Image image(L"TestMetafile4.emf");
   ImageAttributes imAtt;

    ColorMatrix brushMatrix = {     // red converted to green
      0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
      0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
      0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
      0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
      0.0f, 0.0f, 0.0f, 0.0f, 1.0f};

   imAtt.SetColorMatrix(
      &brushMatrix, 
      ColorMatrixFlagsDefault, 
      ColorAdjustTypeBrush);

   // Draw the image (metafile) using brush color adjustment.
   // Items filled with a brush change from red to green.
   graphics.DrawImage(
      &image,
      Rect(0, 0, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),        // source rect
      UnitPixel,
      &imAtt);

   // Temporarily disable brush color adjustment.
   imAtt.SetNoOp(ColorAdjustTypeBrush);

   // Draw the image (metafile) without brush color adjustment.
   // There is no change from red to green.
   graphics.DrawImage(
      &image,
      Rect(0, 80, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);

   // Reinstate brush color adjustment.
   imAtt.ClearNoOp(ColorAdjustTypeBrush);

   // Draw the image (metafile) using brush color adjustment.
   // Items filled with a brush change from red to green.
   graphics.DrawImage(
      &image,
      Rect(0, 160, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);
}
				

Требования

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

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

Bitmap

Coloradjusttype

Изображение

Атрибуты ImageAttributes

ImageAttributes::Reset

ImageAttributes::SetNoOp

ImageAttributes::SetToIdentity

Метафайл

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