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


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

        /// <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把经过处理后的图片显示出来。

  • 相关阅读:
    dedecms 权重排序问题
    HTML5学习笔记简明版(1):HTML5介绍与语法
    通过jquery 获取文本框的聚焦和失焦方法
    14种网页图片和文字特效的jQuery插件代码
    input文本框实现宽度自适应代码实例,input文本框
    html5,html5教程
    css的#和.的区别
    css style与class之间的区别,cssclass
    网页点击按钮弹出遮罩层,拖动和关闭效果
    基于CSS+dIV的网页层,点击后隐藏或显示
  • 原文地址:https://www.cnblogs.com/luluping/p/2585554.html
Copyright © 2020-2023  润新知