注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。
画像内の白を黒に、黒を白に置き換えて表示するというように、色を変換して画像を表示することが、ColorMapクラス(System.Drawing.Imaging名前空間)と、ImageAttributes.SetRemapTableメソッドを使用することでできます。
次の例では、画像の青を黒に、黒を白に変換して表示しています。
'Imports System.Drawing '描画先とするImageオブジェクトを作成する Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height) 'ImageオブジェクトのGraphicsオブジェクトを作成する Dim g As Graphics = Graphics.FromImage(canvas) '画像を取得 Dim img As Bitmap = SystemIcons.WinLogo.ToBitmap() 'ColorMapオブジェクトの配列(カラーリマップテーブル)を作成 Dim cms() As System.Drawing.Imaging.ColorMap = _ {New System.Drawing.Imaging.ColorMap(), _ New System.Drawing.Imaging.ColorMap()} '青を黒に変換する cms(0).OldColor = Color.Blue cms(0).NewColor = Color.Black '黒を白に変換する cms(1).OldColor = Color.Black cms(1).NewColor = Color.White 'ImageAttributesオブジェクトの作成 Dim ia As New System.Drawing.Imaging.ImageAttributes() 'ColorMapを設定 ia.SetRemapTable(cms) '画像を普通に描画 g.DrawImage(img, 0, 0) '色を変換して画像を描画 g.DrawImage(img, New Rectangle(img.Width + 10, 0, img.Width, img.Height), _ 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ia) 'Graphicsオブジェクトのリソースを解放する g.Dispose() 'PictureBox1に表示する PictureBox1.Image = canvas
//using System.Drawing; //描画先とするImageオブジェクトを作成する Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height); //ImageオブジェクトのGraphicsオブジェクトを作成する Graphics g = Graphics.FromImage(canvas); //画像を取得 Bitmap img = SystemIcons.WinLogo.ToBitmap(); //ColorMapオブジェクトの配列(カラーリマップテーブル)を作成 System.Drawing.Imaging.ColorMap[] cms = new System.Drawing.Imaging.ColorMap[] {new System.Drawing.Imaging.ColorMap(), new System.Drawing.Imaging.ColorMap()}; //青を黒に変換する cms[0].OldColor = Color.Blue; cms[0].NewColor = Color.Black; //黒を白に変換する cms[1].OldColor = Color.Black; cms[1].NewColor = Color.White; //ImageAttributesオブジェクトの作成 System.Drawing.Imaging.ImageAttributes ia = new System.Drawing.Imaging.ImageAttributes(); //ColorMapを設定 ia.SetRemapTable(cms); //画像を普通に描画 g.DrawImage(img, 0, 0); //色を変換して画像を描画 g.DrawImage(img, new Rectangle(img.Width + 10, 0, img.Width, img.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ia); //Graphicsオブジェクトのリソースを解放する g.Dispose(); //PictureBox1に表示する PictureBox1.Image = canvas;