次の方法で共有


ImageAttributes.SetRemapTable メソッド (ColorMap )

既定のカテゴリのカラー リマップ テーブルを設定します。

Overloads Public Sub SetRemapTable( _
   ByVal map() As ColorMap _)
[C#]
public void SetRemapTable(ColorMap[] map);
[C++]
public: void SetRemapTable(ColorMap* map[]);
[JScript]
public function SetRemapTable(
   map : ColorMap[]);

パラメータ

  • map
    ColorMap 型の色ペアの配列。それぞれの色ペアには、既存の色 (1 回目の値) および変換後の色 (2 回目の値) が含まれています。

戻り値

このメソッドは値を返しません。

解説

カラー リマップ テーブルは ColorMap 構造体の配列です。各 ColorMap 構造体は、2 つの Color オブジェクトを保持します。1 つは以前の色を、もう 1 つは対応する新しい色を保持します。描画時には、リマップ テーブル内の以前の色の 1 つに一致する色は、対応する新しい色に変更されます。

ImageAttributes オブジェクトは、5 つの調整カテゴリ (既定、ビットマップ、ブラシ、ペン、テキスト) に関して色とグレースケールの設定を保持します。たとえば、既定のカテゴリに対してあるカラー リマップを指定し、ビットマップ カテゴリには別のカラー リマップ テーブルを指定し、さらにペン カテゴリにも異なるカラー リマップ テーブルを指定できます。

既定のカラー調整設定値およびグレースケール調整設定値は、調整設定値が設定されていないすべてのカテゴリに対して適用されます。たとえば、ペン カテゴリの調整設定を一切指定していない場合、ペン カテゴリには既定の設定が適用されます。

使用例

[Visual Basic, C#] 次の例は、Windows フォームでの使用を意図してデザインされており、 Paint イベント ハンドラのパラメータである PaintEventArgs e が必要です。このコードは次のアクションを実行します。

  • イメージ (赤い円) を作成して Circle2.jpg に保存し、そのイメージを開いて画面に描画します。
  • 赤色を緑色に変換するカラー マップを作成します。
  • 前回作成したイメージを画面に再度描画しますが、今回はカラー マップを使用します。
 
Public Sub SetRemapTableExample(e As PaintEventArgs)
' Create a filled, red image and save it to Circle2.jpg.
Dim myBitmap As New Bitmap(50, 50)
Dim g As Graphics = Graphics.FromImage(myBitmap)
g.Clear(Color.White)
g.FillEllipse(New SolidBrush(Color.Red), New Rectangle(0, 0, _
50, 50))
myBitmap.Save("Circle2.jpg")
' Create an Image object from the Circle2.jpg file, and draw
' it to the screen.
Dim myImage As Image = Image.FromFile("Circle2.jpg")
e.Graphics.DrawImage(myImage, 20, 20)
' Create a color map.
Dim myColorMap(0) As ColorMap
myColorMap(0) = New ColorMap()
myColorMap(0).OldColor = Color.Red
myColorMap(0).NewColor = Color.Green
' Create an ImageAttributes object, and then pass the
' myColorMap object to the SetRemapTable method.
Dim imageAttr As New ImageAttributes()
imageAttr.SetRemapTable(myColorMap)
' Draw the image with the remap table set.
Dim rect As New Rectangle(150, 20, 50, 50)
e.Graphics.DrawImage(myImage, rect, 0, 0, 50, 50, _
GraphicsUnit.Pixel, imageAttr) ' Image
End Sub
        
[C#] 
private void SetRemapTableExample(PaintEventArgs e)
{
// Create a filled, red image, and save it to Circle2.jpg.
Bitmap myBitmap = new Bitmap(50, 50);
Graphics g = Graphics.FromImage(myBitmap);
g.Clear(Color.White);
g.FillEllipse(new SolidBrush(Color.Red),
new Rectangle(0, 0, 50, 50));
myBitmap.Save("Circle2.jpg");
// Create an Image object from the Circle2.jpg file, and draw it to
// the screen.
Image myImage = Image.FromFile("Circle2.jpg");
e.Graphics.DrawImage(myImage, 20, 20);
// Create a color map.
ColorMap[] myColorMap = new ColorMap[1];
myColorMap[0] = new ColorMap();
myColorMap[0].OldColor = Color.Red;
myColorMap[0].NewColor = Color.Green;
// Create an ImageAttributes object, and then pass the
// myColorMap object to the SetRemapTable method.
ImageAttributes imageAttr = new ImageAttributes();
imageAttr.SetRemapTable(myColorMap);
// Draw the image with the remap table set.
Rectangle rect = new Rectangle(150, 20, 50, 50);
e.Graphics.DrawImage(myImage,         // Image
rect,            // Dest. rect.
0,               // srcX
0,               // srcY
50,              // srcWidth
50,              // srcHeight
GraphicsUnit.Pixel, // srcUnit
imageAttr);      // ImageAttributes
}
        

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

ImageAttributes クラス | ImageAttributes メンバ | System.Drawing.Imaging 名前空間 | ImageAttributes.SetRemapTable オーバーロードの一覧