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

C# 图像处理(三)—— 反色处理

Posted on 2012-07-11 00:17  linFen  阅读(7565)  评论(0编辑  收藏  举报

接下来就说一下怎样把一幅图片弄成反色效果。其实每个像素里面都有四个值,它们分别是alpha、red、green和blue四个值,它们就是组成颜色的基本元素,至少我是这样认为的。而每一个元素的取值范围都是[0, 255],也就是在大于等于0、小于等于255之间。所以实现反色效果的函数算下,

    /// <summary>
    /// 将图片进行反色处理
    /// </summary>
    /// <param name="mybm">原始图片</param>
    /// <param name="width">原始图片的长度</param>
    /// <param name="height">原始图片的高度</param>
    /// <returns>被反色后的图片</returns>
    public Bitmap RePic(Bitmap mybm, int width, int height)
    {
        Bitmap bm = new Bitmap(width, height);//初始化一个记录处理后的图片的对象
        int x, y, resultR, resultG, resultB;
        Color pixel;

        for (x = 0; x < width; x++)
        {
            for (y = 0; y < height; y++)
            {
                pixel = mybm.GetPixel(x, y);//获取当前坐标的像素值
                resultR = 255 - pixel.R;//反红
                resultG = 255 - pixel.G;//反绿
                resultB = 255 - pixel.B;//反蓝
                bm.SetPixel(x, y, Color.FromArgb(resultR, resultG, resultB));//绘图
            }
        }

        return bm;//返回经过反色处理后的图片
    }

 

    最后就是利用pictureBox把图片给显示出来窗体里面。