ImageAttributes::ClearNoOp メソッド (gdiplusimageattributes.h)
ImageAttributes::ClearNoOp メソッドは、指定したカテゴリの NoOp 設定をクリアします。
構文
Status ClearNoOp(
[in, optional] ColorAdjustType type
);
パラメーター
[in, optional] type
種類: ColorAdjustType
NoOp 設定がクリアされるカテゴリを指定する ColorAdjustType 列挙体の要素。 既定値は ColorAdjustTypeDefault です。
戻り値
種類: 状態
メソッドが成功した場合は、Status 列挙の要素である Ok を返します。
メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
注釈
ImageAttributes::SetNoOp メソッドを呼び出すことで、特定のオブジェクトの種類の色調整を無効にすることができます。 後で ImageAttributes::ClearNoOp メソッドを呼び出すことで、そのオブジェクトの種類の色調整を元に戻すことができます。 たとえば、次のステートメントでは、ブラシの色調整が無効になります。
myImageAttributes.SetNoOp(ColorAdjustTypeBrush);
次のステートメントは、 ImageAttributes::SetNoOp の呼び出しの前に行われたブラシの色調整を元に戻します。
myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);
例
次の例では、.emf ファイルから Image オブジェクトを作成します。 このコードでは、 ImageAttributes オブジェクトも作成されます。 ImageAttributes::SetColorMatrix 呼び出しは、ImageAttributes オブジェクトのブラシの色調整マトリックスを、赤から緑に変換するマトリックスに設定します。
このコードは、Image オブジェクトのアドレスと ImageAttributes オブジェクトのアドレスを渡すたびに、DrawImage を 3 回呼び出します。 イメージが初めて描画されると、ブラシによって塗りつぶされたすべての赤が緑色に変換されます。 (ペンで描かれた赤は変更されません。イメージが 2 回目に描画される前に、ImageAttributes オブジェクトの ImageAttributes::SetNoOp メソッドを呼び出します。 そのため、画像が 2 回目に描画されるときに、ブラシに色の調整は適用されません。 イメージが 3 回目に描画される前に、このコードは ImageAttributes::ClearNoOp メソッドを呼び出し、ブラシの色調整設定を復元します。 そのため、画像が 3 回目に描画されると、ブラシによって塗りつぶされたすべての赤が緑色に変換されます。
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 |