Io faccio così
ciao.codice:private System.Drawing.Image GrayScaleImage(System.Drawing.Image img){ int Height = img.Height,Width = img.Width; System.Drawing.Bitmap imgBMP = new System.Drawing.Bitmap(img); Color _color; for (int i=0;i<Width;i++) for (int j=0;j<Height;j++){ _color = imgBMP.GetPixel(i,j); int _gray = (_color.R + _color.G + _color.B) / 3; imgBMP.SetPixel(i,j,Color.FromArgb(_gray,_gray,_gray)); } return (System.Drawing.Image)imgBMP; }