ヘッダー

VB.NET2002対応 VB.NET2003対応 VB2005対応

 

画像をモノクロにする

以下の関数Monotoneを使用すると、画像を白黒にできる。使用例はすぐ下にある。

VB.NET2002対応 VB.NET2003対応 VB2005対応

'''■Monotone
''' <summary>画像を白黒にする。</summary>
''' <param name="SourceImage">元となる画像</param>
''' <returns>白黒画像</returns>
''' <remarks></remarks>
Private Function Monotone(ByVal SourceImage As Image) As Bitmap

    Dim DestImage As New Bitmap(SourceImage.Width, SourceImage.Height)
    Dim g As Graphics = Graphics.FromImage(DestImage)
    Dim Attr As New Imaging.ImageAttributes
    Dim M As New Imaging.ColorMatrix

    M.Matrix00 = 0.333F
    M.Matrix01 = 0.333F
    M.Matrix02 = 0.333F
    M.Matrix10 = 0.333F
    M.Matrix11 = 0.333F
    M.Matrix12 = 0.333F
    M.Matrix20 = 0.333F
    M.Matrix21 = 0.333F
    M.Matrix22 = 0.333F
    M.Matrix33 = 1.0F
    M.Matrix44 = 1.0F

    Attr.SetColorMatrix(M)

    g.DrawImage(SourceImage, New Rectangle(New Point, SourceImage.Size), 0, 0, SourceImage.Width, SourceImage.Height, GraphicsUnit.Pixel, Attr)

    Return DestImage

End Function

 

使用例:PictureBox1の画像を白黒にする例

VB.NET2002対応 VB.NET2003対応 VB2005対応

Me.Cursor = Cursors.WaitCursor

PictureBox1.Image = Monotone(PictureBox1.Image)

Me.Cursor = Cursors.Default

メモ:PictureBox1にはあらかじめ画像を読み込んでおくなどしてImageプロパティに値をセットしておく必要があります。