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 |