使用原像素点RGB的平均值即可
1 public Image BlackAndWhite(Image image) 2 { 3 int Height = image.Height; 4 int Width = image.Width; 5 Bitmap newPic = new Bitmap(Width,Height); 6 Bitmap oldPic = (Bitmap)image; 7 Color pixel; 8 9 for (int x = 0; x < Width; x++) 10 { 11 for (int y = 0; y < Height; y++) 12 { 13 pixel = oldPic.GetPixel(x, y); 14 int r, g, b, result = 0; 15 r = pixel.R; 16 g = pixel.G; 17 b = pixel.B; 18 result = (r + g + b) / 3; 19 newPic.SetPixel(x, y, Color.FromArgb(result,result,result)); 20 } 21 } 22 23 return newPic; 24 }