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

こちらもご覧ください

Bitmap

ColorAdjustType

Image

ImageAttributes

ImageAttributes::Reset

ImageAttributes::SetNoOp

ImageAttributes::SetToIdentity

メタファイル

色変更