Public Function GrayScale(ByVal Img As System.Drawing.Image) As System.Drawing.Image
Dim GrayAttributes As System.Drawing.Imaging.ImageAttributes
Dim GrayMatrix As New System.Drawing.Imaging.ColorMatrix
GrayMatrix.Matrix00 = 1 / 3.0F
GrayMatrix.Matrix01 = 1 / 3.0F
GrayMatrix.Matrix02 = 1 / 3.0F
GrayMatrix.Matrix10 = 1 / 3.0F
GrayMatrix.Matrix11 = 1 / 3.0F
GrayMatrix.Matrix12 = 1 / 3.0F
GrayMatrix.Matrix20 = 1 / 3.0F
GrayMatrix.Matrix21 = 1 / 3.0F
GrayMatrix.Matrix22 = 1 / 3.0F
GrayAttributes = New System.Drawing.Imaging.ImageAttributes()
GrayAttributes.SetColorMatrix(GrayMatrix, System.Drawing.Imaging.ColorMatrixFlag.Default, System.Drawing.Imaging.ColorAdjustType.Default)
Dim FinalImg As New System.Drawing.Bitmap(Img.Width, Img.Height)
Dim Graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(FinalImg)
Graphics.DrawImage(Img, New Rectangle(0, 0, FinalImg.Width, FinalImg.Height), 0, 0, FinalImg.Width, FinalImg.Height, System.Drawing.GraphicsUnit.Pixel, GrayAttributes)
Return FinalImg
End Function