Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 >
画像の色を置換する
1.白い部分を黒くする
Dim DestImage As Image = PictureBox1.Image
Dim g As Graphics = Graphics.FromImage(DestImage)
Dim Attr As New Imaging.ImageAttributes
Dim Maps(0) As Imaging.ColorMapMaps(0) = New Imaging.ColorMap
Maps(0).OldColor = Color.White '置換前の色に「白」を指定
Maps(0).NewColor = Color.Black '置換後の色に「黒」を指定
Attr.SetRemapTable(Maps)g.DrawImage(DestImage, New Rectangle(New Point, DestImage.Size), 0, 0, DestImage.Width, DestImage.Height, GraphicsUnit.Pixel, Attr)
PictureBox1.Image = DestImage
メモ:PictureBox1にはあらかじめ画像を読み込んでおくなどしてImageプロパティに値をセットしておく必要があります。
2.白→黒、赤→青を同時に置換する
Dim DestImage As Image = PictureBox1.Image
Dim g As Graphics = Graphics.FromImage(DestImage)
Dim Attr As New Imaging.ImageAttributes
Dim Maps(1) As Imaging.ColorMapMaps(0) = New Imaging.ColorMap
Maps(0).OldColor = Color.White '置換前の色に「白」を指定
Maps(0).NewColor = Color.Black '置換後の色に「黒」を指定Maps(1) = New Imaging.ColorMap
Maps(1).OldColor = Color.Red '置換前の色に「赤」を指定
Maps(1).NewColor = Color.Blue '置換後の色に「青」を指定Attr.SetRemapTable(Maps)
g.DrawImage(DestImage, New Rectangle(New Point, DestImage.Size), 0, 0, DestImage.Width, DestImage.Height, GraphicsUnit.Pixel, Attr)
PictureBox1.Image = DestImage
メモ:PictureBox1にはあらかじめ画像を読み込んでおくなどしてImageプロパティに値をセットしておく必要があります。
すぐに試せるサンプル
以下の例ではSample1.bmpの白い部分を黒にしてPictureBox1に重ねて表示する。
サンプルを実行する前に必要なもの:
・PictureBox1
・C:\Sample1.bmp
Dim
DestImage As Image = Image.FromFile("C:\Sample1.bmp") Dim g As Graphics = Graphics.FromImage(DestImage) Dim Attr As New Imaging.ImageAttributes Dim Maps(0) As Imaging.ColorMap Maps(0) =
New
Imaging.ColorMap g.DrawImage(DestImage, New Rectangle(New Point, DestImage.Size), 0, 0, DestImage.Width, DestImage.Height, GraphicsUnit.Pixel, Attr) PictureBox1.Image = DestImage |