ヘッダー

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

 

画像をセピア色にする

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

Dim SourceImage As Image = PictureBox1.Image
Dim g As Graphics = Graphics.FromImage(SourceImage)
Dim Attr As New Imaging.ImageAttributes
Dim M As New Imaging.ColorMatrix

M.Matrix00 = 0.393F
M.Matrix01 = 0.349F
M.Matrix02 = 0.272F

M.Matrix10 = 0.769F
M.Matrix11 = 0.686F
M.Matrix12 = 0.534F

M.Matrix20 = 0.189F
M.Matrix21 = 0.168F
M.Matrix22 = 0.131F

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)

PictureBox1.Refresh()

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

 

行列の数値は以下の記事を参照しました。

http://msdn.microsoft.com/msdnmag/issues/05/01/NETMatters/