• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# 图像处理(四)—— 滤色效果

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

其实如果有看过之前写的把图片黑白化、和把图片反色化的话,对于一些简单的图像处理是可以做得得心应手的,因为那些只是先获取坐标的像素值,再对这些值进行处理而已。然而现在说的滤色效果也是大同小异的。实现滤色效果的函数如下,

    /// <summary>
    /// 将图片进行滤色处理
    /// </summary>
    /// <param name="mybm">原始图片</param>
    /// <param name="width">原始图片的长度</param>
    /// <param name="height">原始图片的高度</param>
    /// <returns>已被滤色处理后的图片</returns>

    public Bitmap FilPic(Bitmap mybm, int width, int height)
    {
        Bitmap bm = new Bitmap(width, height);//初始化一个记录滤色效果的图片对象
        int x, y;//循环次数
        Color pixel;


        for (x = 0; x < width; x++)
        {
            for (y = 0; y < height; y++)
            {
                pixel = mybm.GetPixel(x, y);//获取当前坐标的像素值
                bm.SetPixel(x, y, Color.FromArgb(0, pixel.G, pixel.B));//绘图
             }

        }

       

        return bm;//返回滤色处理后的图片

    }

   

    这里只是实现滤去红色的滤色效果,不知道大家有没有注意到,其实在绘图处理那里只是改了一个参数的值而已。SetPixel(x, y, Color.FromArgb(pixel.R, pixel.G, pixel.B))中的Color.FromArgb(pixel.R, pixel.G, pixel.B)里面的三个参数,其实分别是红色的值、绿色的值和蓝色的值,滤色的原理就是把想要滤要的颜色的值赋值为0,像上面那个例子里面,就是滤去图片的红色值,因为我把Color.FromArgb(pixel.R, pixel.G, pixel.B)里面的pixel.R的值直接赋为0了,其它两个值不变,那就可以实现滤红的效果了,当然,也可以做成滤绿、滤蓝、滤红绿两色等效果,甚至可以滤去所有的颜色,可是滤去所有的颜色就把整幅图片弄成黑色了,那做出来这个效果又有什么用呢?

    在我的程序里,我做成的效果是根据用户的要求来滤色的,所以以上的函数不是我程序里面的源代码,是少了一个int变量的。最后就是利用pictureBox把经过处理后的图片显示出来。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中读取文件内容发布时间:2022-07-13
下一篇:
C语言实现五子棋发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap