ImageAttributes::ClearNoOp 方法 (gdiplusimageattributes.h)

ImageAttributes::ClearNoOp 方法清除指定类别的 NoOp 设置。

语法

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

参数

[in, optional] type

类型: ColorAdjustType

ColorAdjustType 枚举的元素,该元素指定清除了 NoOp 设置的类别。 默认值为 ColorAdjustTypeDefault

返回值

类型: 状态

如果该方法成功,则返回 Ok,这是 Status 枚举的元素。

如果方法失败,它将返回 Status 枚举的其他元素之一。

注解

可以通过调用 ImageAttributes::SetNoOp 方法禁用特定对象类型的颜色调整。 稍后,可以通过调用 ImageAttributes::ClearNoOp 方法恢复该对象类型的颜色调整。 例如,以下语句禁用画笔的颜色调整:

myImageAttributes.SetNoOp(ColorAdjustTypeBrush);

以下语句恢复在调用 ImageAttributes::SetNoOp 之前进行的画笔颜色调整:

myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);

示例

以下示例从 .emf 文件创建 Image 对象。 该代码还会创建 ImageAttributes 对象。 ImageAttributes::SetColorMatrix 调用将该 ImageAttributes 对象的画笔颜色调整矩阵设置为将红色转换为绿色的矩阵。

代码调用 DrawImage 三次,每次传递 Image 对象的地址和 ImageAttributes 对象的地址。 首次绘制图像时,画笔绘制的所有红色都转换为绿色。 (笔绘制的红色不会更改。) 第二次绘制图像之前,代码调用 ImageAttributes 对象的 ImageAttributes::SetNoOp 方法。 因此,第二次绘制图像时,不会对画笔应用任何颜色调整。 在第三次绘制图像之前,代码调用 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
标头 gdiplusimageattributes.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

Bitmap

ColorAdjustType

图像

ImageAttributes

ImageAttributes::Reset

ImageAttributes::SetNoOp

ImageAttributes::SetToIdentity

Metafile

重新着色