public System.Drawing.Image GrayScale(System.Drawing.Image Img)
{
System.Drawing.Imaging.ImageAttributes GrayAttributes;
System.Drawing.Imaging.ColorMatrix GrayMatrix = 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);
System.Drawing.Bitmap FinalImg = new System.Drawing.Bitmap(Img.Width, Img.Height);
System.Drawing.Graphics 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;
}