博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C# 图像处理(二)—— 黑白效果

Posted on 2012-07-11 00:19  linFen  阅读(4786)  评论(1编辑  收藏  举报

 今天就说一下怎样把一幅图片做成黑白图片的效果,就是把图片黑白化。之前打开图片的方法已经发表了,具体地址是:

C# 图像处理(一)

 

   再面对一幅要处理成黑白效果的图片,我为此写了以下一个函数,

    /// <summary>
    /// 将图片转为为黑白图片
    /// </summary>
    /// <param name="mybt">要进行处理的图片</param>
    /// <param name="width">图片的长度</param>
    /// <param name="height">图片的高度</param>
    /// <returns>已经被处理后的黑白图片</returns>
    public Bitmap BWPic(Bitmap mybm, int width, int height)
    {
        Bitmap bm = new Bitmap(width, height);//初始化一个Bitmap对象,用来记录处理后的图片
        int x, y, result;//x,y是循环次数,result是记录处理后的像素值
        Color pixel;

        for (x = 0; x < width; x++)
        {
            for (y = 0; y < height; y++)
            {
                pixel = mybm.GetPixel(x, y);//获取当前坐标的像素值
                result = (pixel.R + pixel.G + pixel.B) / 3;//取红绿蓝三色的平均值

                //绘图,把处理后的值赋值到刚才定义的bm对象里面
                bm.SetPixel(x, y, Color.FromArgb(result, result, result));
            }
        }

        return bm;//返回黑白图片
    }

    最后利用一个pictureBox控件把处理后的图片呈现出来,利用的是下面这个语句,

    int width = this.pictureBox.Width;//图片容器的长度
    int height = this.pictureBox.Height;//图片容器的宽度
    this.pictureBox.Image = pix.BWPic((Bitmap)this.pictureBox.Image, width, height);//处理图片