ImageAttributes::ClearBrushRemapTable メソッド (gdiplusimageattributes.h)

ImageAttributes::ClearBrushRemapTable メソッドは、この ImageAttributes オブジェクトのブラシカラー再マップ テーブルをクリアします。

構文

Status ClearBrushRemapTable();

戻り値

種類: 状態

メソッドが成功した場合は、Status 列挙体の要素である Ok を返します

メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。

解説

ImageAttributes オブジェクトは、既定、ビットマップ、ブラシ、ペン、テキストの 5 つの調整カテゴリの色とグレースケールの設定を維持します。 たとえば、既定のカテゴリに 1 つのカラー 再マップ テーブル、ビットマップ カテゴリに別のカラー 再マップ テーブル、ブラシ カテゴリに別のカラー 再マップ テーブルを指定できます。

既定の色とグレースケールの調整設定は、独自の調整設定を持たないすべてのカテゴリに適用されます。 たとえば、ブラシ カテゴリの調整設定を指定しない場合、既定の設定はブラシ カテゴリに適用されます。

特定のカテゴリに対してカラーまたはグレースケールの調整設定を指定するとすぐに、既定の調整設定はそのカテゴリに適用されなくなります。 たとえば、赤を緑に変換する既定の再マップ テーブルを指定し、既定のガンマ値 1.8 を指定するとします。 ImageAttributes::SetBrushRemapTable を呼び出した場合、既定の再マップ テーブル (赤から緑) と既定のガンマ値 (1.8) はブラシには適用されません。 後で ImageAttributes::ClearBrushRemapTable を呼び出した場合、ブラシ カテゴリは既定の再マップ テーブルに戻りません。むしろ、ブラシカテゴリには再マップテーブルはありません。 同様に、ブラシ カテゴリは既定のガンマ値に戻りません。むしろ、ブラシカテゴリにはガンマ値はありません。

次の例では、.emf ファイルから Image オブジェクトを作成します。 このコードでは、 ImageAttributes オブジェクトも作成されます。 ImageAttributes::SetRemapTable を呼び出すと、ImageAttributes オブジェクトの既定のカラー マップ テーブルが、赤から青に変換されるテーブルに設定されます。 ImageAttributes::SetBrushRemapTable を呼び出すと、ImageAttributes オブジェクトのブラシ再マップ テーブルが、赤から緑に変換されるテーブルに設定されます。

このコードでは 、DrawImage を 1 回呼び出して、色調整なしでイメージを描画します。 次に、コードは、Image オブジェクトのアドレスと ImageAttributes オブジェクトのアドレスを渡すたびに、DrawImage をさらに 3 回呼び出します。 イメージが 2 回目に描画されると ( ImageAttributes::SetRemapTable の呼び出しの後)、すべての赤が青に変換されます。 イメージが 3 回目に描画されると ( ImageAttributes::SetBrushRemapTable の呼び出しの後)、ブラシで塗りつぶされたすべての赤が緑色に変換され、赤の残りの部分が青に変換されます。 4 回目のイメージの描画 ( ImageAttributes::ClearBrushRemapTable の呼び出しの後)、ブラシで塗りつぶされたすべての赤は変更されず、赤の残りの部分は青に変換されます。


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

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

   ColorMap defaultMap;
   defaultMap.oldColor = Color(255, 255, 0, 0);   // red converted to blue
   defaultMap.newColor = Color(255, 0, 0, 255);

   ColorMap brushMap;
   brushMap.oldColor = Color(255, 255, 0, 0);     // red converted to green
   brushMap.newColor = Color(255, 0, 255, 0);

   // Set the default color-remap table.
   imAtt.SetRemapTable(1, &defaultMap, ColorAdjustTypeDefault);

   // Draw the image (metafile) using no color adjustment.
   graphics.DrawImage(
      &image,
      Rect(10, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel);

   // Draw the image (metafile) using default color adjustment.
   // All red is converted to blue.
   graphics.DrawImage(
      &image,
      Rect(10, 90, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);

   // Set the brush remap table.
   imAtt.SetBrushRemapTable(1, &brushMap);

   // Draw the image (metafile) using default and brush adjustment.
   // Red painted with a brush is converted to green.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 170, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);

   // Clear the brush remap table.
   imAtt.ClearBrushRemapTable();

   // Draw the image (metafile) using only default color adjustment.
   // Red painted with a brush gets no color adjustment.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 250, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);  
}
				

上記のコードは、特定のファイル Testmetafile4.emf と共に、次の出力を生成しました。 左側の列の省略記号はペンで描画され、右側の列の省略記号にはブラシが塗りつぶされました。 既定の再マップ テーブルは、ペンで描画された省略記号に適用されることに注意してください。 ブラシで塗りつぶされた省略記号に適用される再マップ テーブルは、 ImageAttributes::SetBrushRemapTable 呼び出しと ImageAttributes::ClearBrushRemapTable 呼び出しによって異なります。

4 つの空の省略記号を示す図。1 つ目は赤、残りは青、次に 4 つの塗りつぶされた楕円 (赤、青、緑、赤) です。

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdiplusimageattributes.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

関連項目

Bitmap

Color

ColorAdjustType

カラーマップ

イメージ

ImageAttributes

ImageAttributes::ClearRemapTable

ImageAttributes::SetBrushRemapTable

ImageAttributes::SetRemapTable

メタファイル

色変更