ImageAttributes.SetRemapTable メソッド (ColorMap[])
アセンブリ: System.Drawing (system.drawing.dll 内)


カラー リマップ テーブルは ColorMap 構造体の配列です。各 ColorMap 構造体は、2 つの Color オブジェクトを保持します。1 つは以前の色を、もう 1 つは対応する新しい色を保持します。描画時には、リマップ テーブル内の以前の色の 1 つに一致する色は、対応する新しい色に変更されます。
ImageAttributes オブジェクトは、5 つの調整カテゴリ (既定、ビットマップ、ブラシ、ペン、テキスト) に関して色とグレースケールの設定を保持します。たとえば、既定のカテゴリに対してあるカラー リマップを指定し、ビットマップ カテゴリには別のカラー リマップ テーブルを指定し、さらにペン カテゴリにも異なるカラー リマップ テーブルを指定できます。
既定のカラー調整設定値およびグレースケール調整設定値は、調整設定値が設定されていないすべてのカテゴリに対して適用されます。たとえば、ペン カテゴリの調整設定を一切指定していない場合、ペン カテゴリには既定の設定が適用されます。

次の例は、Windows フォームでの使用を意図してデザインされており、Paint イベント ハンドラのパラメータである PaintEventArgse が必要です。このコードは次のアクションを実行します。
Public Sub SetRemapTableExample(ByVal 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
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, rect, 0, 0, 50, 50, GraphicsUnit.Pixel, imageAttr); }
private: void SetRemapTableExample( PaintEventArgs^ e ) { // Create a filled, red image, and save it to Circle2.jpg. Bitmap^ myBitmap = gcnew Bitmap( 50,50 ); Graphics^ g = Graphics::FromImage( myBitmap ); g->Clear( Color::White ); g->FillEllipse( gcnew SolidBrush( Color::Red ), 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. array<ColorMap^>^myColorMap = gcnew array<ColorMap^>(1); myColorMap[ 0 ] = gcnew 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 = gcnew ImageAttributes; imageAttr->SetRemapTable( myColorMap ); // Draw the image with the remap table set. Rectangle rect = Rectangle(150,20,50,50); e->Graphics->DrawImage( myImage, rect, 0, 0, 50, 50, GraphicsUnit::Pixel, imageAttr ); }
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.get_White()); g.FillEllipse(new SolidBrush(Color.get_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.get_Graphics().DrawImage(myImage, 20, 20); // Create a color map. ColorMap myColorMap[] = new ColorMap[1]; myColorMap.set_Item(0, new ColorMap()); myColorMap[0].set_OldColor(Color.get_Red()); myColorMap[0].set_NewColor(Color.get_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.get_Graphics().DrawImage(myImage, rect, 0, 0, 50, 50, GraphicsUnit.Pixel, imageAttr); } //SetRemapTableExample

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ImageAttributes.SetRemapTable メソッド (ColorMap[], ColorAdjustType)
アセンブリ: System.Drawing (system.drawing.dll 内)

Dim instance As ImageAttributes Dim map As ColorMap() Dim type As ColorAdjustType instance.SetRemapTable(map, type)
戻り値
このメソッドは値を返しません。

カラー リマップ テーブルは ColorMap 構造体の配列です。各 ColorMap 構造体は、2 つの Color オブジェクトを保持します。1 つは以前の色を、もう 1 つは対応する新しい色を保持します。描画時には、リマップ テーブル内の以前の色の 1 つに一致する色は、対応する新しい色に変更されます。
ImageAttributes オブジェクトは、5 つの調整カテゴリ (既定、ビットマップ、ブラシ、ペン、テキスト) に関して色とグレースケールの設定を保持します。たとえば、既定のカテゴリに対してあるカラー リマップを指定し、ビットマップ カテゴリには別のカラー リマップ テーブルを指定し、さらにペン カテゴリにも異なるカラー リマップ テーブルを指定できます。
既定のカラー調整設定値およびグレースケール調整設定値は、調整設定値が設定されていないすべてのカテゴリに対して適用されます。たとえば、ペン カテゴリの調整設定を一切指定していない場合、ペン カテゴリには既定の設定が適用されます。
特定のカテゴリに対してカラー調整設定値またはグレースケール調整設定値を指定すると、そのカテゴリに適用されていた既定の調整設定値は解除されます。たとえば、既定のカテゴリに対して調整設定値のコレクションを指定するとします。Pen を SetRemapTable メソッドに渡してペン カテゴリのカラー リマップ テーブルを設定すると、ペンには既定の調整設定は一切適用されません。


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ImageAttributes.SetRemapTable メソッド
- ImageAttributes.SetRemapTable メソッドのページへのリンク