Graphics g = this.CreateGraphics();
c#图片中的重绘_c#g.Clear(Color.White);
c#图片中的重绘_c#Bitmap image = new Bitmap("test.jpg");
c#图片中的重绘_c#int Width = image.Width - 1;
c#图片中的重绘_c#int Height = image.Height - 1;
c#图片中的重绘_c#
c#图片中的重绘_c#            //绘制原图   
c#图片中的重绘_c#g.DrawImage(image, 0, 0);
c#图片中的重绘_c#g.TranslateTransform(image.Width, 0);
c#图片中的重绘_c#
/*image2、image3分别用来保存最大值法   
            和加权平均法处理的灰度图像*/
c#图片中的重绘_c#Bitmap image2 = image.Clone(new Rectangle(0, 0, image.Width,image.Height),PixelFormat.DontCare);
c#图片中的重绘_c#Bitmap image3 = image.Clone(new Rectangle(0, 0, image.Width,image.Height),PixelFormat.DontCare);
c#图片中的重绘_c#
c#图片中的重绘_c#Color color;
c#图片中的重绘_c#_14c#图片中的重绘_c#_15使用平均值进行灰度处理#region 使用平均值进行灰度处理
c#图片中的重绘_c#_16//使用平均值进行灰度处理   
c#图片中的重绘_c#_16            for (int i = Width; i >= 0; i--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19            c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                for (int j = Height; j >= 0; j--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                    color = image.GetPixel(i, j);
c#图片中的重绘_c#_16                    //求出平均三个色彩分量的平均值   
c#图片中的重绘_c#_16                    int middle = (color.R + color.G + color.B) / 3;
c#图片中的重绘_c#_16                    Color colorResult = Color.FromArgb(255, middle, middle, middle);
c#图片中的重绘_c#_16                    image.SetPixel(i, j, colorResult);
c#图片中的重绘_c#_30                }
c#图片中的重绘_c#_30            }
c#图片中的重绘_c#_16            //重新绘制灰度化图   
c#图片中的重绘_c#_16            g.DrawImage(image, new Rectangle(0, 0, Width, Height));
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16            //在新位置显示最大值法进行灰度处理的结果   
c#图片中的重绘_c#_16            g.TranslateTransform(image.Width, 0);
c#图片中的重绘_c#_37            #endregion
c#图片中的重绘_c#_38c#图片中的重绘_c#_15使用最大值法进行灰度处理#region 使用最大值法进行灰度处理
c#图片中的重绘_c#_16            //使用最大值法进行灰度处理   
c#图片中的重绘_c#_16            for (int i = Width; i >= 0; i--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19            c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                for (int j = Height; j >= 0; j--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                    color = image2.GetPixel(i, j);
c#图片中的重绘_c#_16                    int tmp = Math.Max(color.R, color.G);
c#图片中的重绘_c#_16                    int maxcolor = Math.Max(tmp, color.B);
c#图片中的重绘_c#_16                    Color colorResult = Color.FromArgb(255, maxcolor, maxcolor, maxcolor);
c#图片中的重绘_c#_16                    //设置处理后的灰度信息   
c#图片中的重绘_c#_16                    image2.SetPixel(i, j, colorResult);
c#图片中的重绘_c#_30                }
c#图片中的重绘_c#_30            }
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16            //重新绘制灰度化图   
c#图片中的重绘_c#_16            g.DrawImage(image2, new Rectangle(0, 0, Width, Height));
c#图片中的重绘_c#_16            //在第二行绘制图片   
c#图片中的重绘_c#_16            g.ResetTransform();
c#图片中的重绘_c#_16            g.TranslateTransform(0, image.Height);
c#图片中的重绘_c#_37            #endregion
c#图片中的重绘_c#_38c#图片中的重绘_c#_15使用加权平均法进行灰度处理#region 使用加权平均法进行灰度处理
c#图片中的重绘_c#_16            //使用加权平均法进行灰度处理   
c#图片中的重绘_c#_16            for (int i = Width; i >= 0; i--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19            c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                for (int j = Height; j >= 0; j--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                    color = image3.GetPixel(i, j);
c#图片中的重绘_c#_16                    int R = (int)(0.3f * color.R);
c#图片中的重绘_c#_16                    int G = (int)(0.59f * color.G);
c#图片中的重绘_c#_16                    int B = (int)(0.11f * color.B);
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16                    Color colorResult = Color.FromArgb(255, R, G, B);
c#图片中的重绘_c#_16                    //设置处理后的灰度信息   
c#图片中的重绘_c#_16                    image3.SetPixel(i, j, colorResult);
c#图片中的重绘_c#_30                }
c#图片中的重绘_c#_30            }
c#图片中的重绘_c#_16            //重新绘制灰度化图   
c#图片中的重绘_c#_16            g.DrawImage(image3, new Rectangle(0, 0, Width, Height));
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16            g.TranslateTransform(image.Width, 0);
c#图片中的重绘_c#_37            #endregion
c#图片中的重绘_c#_38c#图片中的重绘_c#_15灰度的还原演示,还原使用最大值法处理的灰度图像image2#region 灰度的还原演示,还原使用最大值法处理的灰度图像image2
c#图片中的重绘_c#_16            //灰度的还原演示,还原使用最大值法处理的灰度图像image2   
c#图片中的重绘_c#_16            for (int i = Width; i > 0; i--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19            c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                for (int j = Height; j > 0; j--)
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                    color = image2.GetPixel(i, j);
c#图片中的重绘_c#_16                    int R = color.R;
c#图片中的重绘_c#_16                    int G = color.G;
c#图片中的重绘_c#_16                    int B = color.B;
c#图片中的重绘_c#_16                    //分别对RGB三种色彩分量进行伪彩色还原   
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16                    //进行红色分量的还原   
c#图片中的重绘_c#_16                    if (R < 127)
c#图片中的重绘_c#_16                        R = 0;
c#图片中的重绘_c#_16                    if (R >= 192)
c#图片中的重绘_c#_16                        R = 255;
c#图片中的重绘_c#_16                    if (R <= 191 && R >= 128)
c#图片中的重绘_c#_16                        R = 4 * R - 510;
c#图片中的重绘_c#_16
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                    /**//*进行绿色分量的还原,为了还原后的绿色分量再次参加比较,   
c#图片中的重绘_c#_30                    这里设置一个变量YES表示G是否已经参加了比较*/
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16                    bool yes;
c#图片中的重绘_c#_16                    yes = false;
c#图片中的重绘_c#_16                    if (G <= 191 && G >= 128 && (!yes))
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                    c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                        G = 255;
c#图片中的重绘_c#_16                        yes = true;
c#图片中的重绘_c#_30                    }
c#图片中的重绘_c#_16                    if (G >= 192 && (!yes))
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                    c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                        G = 1022 - 4 * G;
c#图片中的重绘_c#_16                        yes = true;
c#图片中的重绘_c#_30                    }
c#图片中的重绘_c#_16                    if (G <= 63 && (!yes))
c#图片中的重绘_c#_18c#图片中的重绘_c#_19                    c#图片中的重绘_c#_20{
c#图片中的重绘_c#_16                        G = 254 - 4 * G;
c#图片中的重绘_c#_16                        yes = true;
c#图片中的重绘_c#_30                    }
c#图片中的重绘_c#_16                    if (G <= 127 && G >= 67 && (!yes))
c#图片中的重绘_c#_16                        G = 4 * G - 257;
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16                    //进行蓝色分量的还原   
c#图片中的重绘_c#_16                    if (B <= 63)
c#图片中的重绘_c#_16                        B = 255;
c#图片中的重绘_c#_16                    if (B >= 128)
c#图片中的重绘_c#_16                        B = 0;
c#图片中的重绘_c#_16                    if (B >= 67 && B <= 127)
c#图片中的重绘_c#_16                        B = 510 - 4 * B;
c#图片中的重绘_c#_16
c#图片中的重绘_c#_16                    //还原后的伪彩色   
c#图片中的重绘_c#_16                    Color colorResult = Color.FromArgb(255, R, G, B);
c#图片中的重绘_c#_16                    //将还原后的RGB信息重新写入位图   
c#图片中的重绘_c#_16                    image2.SetPixel(i, j, colorResult);
c#图片中的重绘_c#_16
c#图片中的重绘_c#_30                }
c#图片中的重绘_c#_30            }
c#图片中的重绘_c#_37            #endregion
c#图片中的重绘_c#            //重新绘制还原后的伪彩色位图   
c#图片中的重绘_c#            //重新绘制灰度化图  
c#图片中的重绘_c#            g.DrawImage(image2, new Rectangle(0, 0, Width, Height));