zoukankan      html  css  js  c++  java
  • C# 图像处理(七)—— 调节图片光暗

    又回到了面向图片像素处理的实现了。想一想,早知道就先把“调节图片光暗”这部分提前到图像处理(六)那里,因为这部分跟(二)至(五)的原理都差不多。不过算了,不改了,照样写下去好了。

       我个人的理解,调整图片的光暗,就是通过对每个像素里面红绿蓝三个值分别加上一个常数,这就完成了。其实说多也没有用,直接贴出代码好了,

        /// <summary>
        /// 调整图片光暗
        /// </summary>
        /// <param name="mybm">原始图片</param>
        /// <param name="width">原始图片的长度</param>
        /// <param name="height">原始图片的高度</param>
        /// <param name="val">增加或减少的光暗值</param>
        /// <returns>经过调整了光暗后的图片</returns>

        public Bitmap LDPic(Bitmap mybm, int width, int height, int val)
        {
            Bitmap bm = new Bitmap(width, height);//初始化一个记录经过处理后的图片对象
            int x, y, resultR, resultG, resultB;//x、y是循环次数,后面三个是记录红绿蓝三个值的
            Color pixel;

            for (x = 0; x < width; x++)
            {
                for (y = 0; y < height; y++)
                {
                    pixel = mybm.GetPixel(x, y);//获取当前像素的值
                    resultR = helper.CheckRange(pixel.R + val);//检查红色值会不会超出[0, 255]
                    resultG = helper.CheckRange(pixel.G + val);//检查绿色值会不会超出[0, 255]
                    resultB = helper.CheckRange(pixel.B + val);//检查蓝色值会不会超出[0, 255]
                    bm.SetPixel(x, y, Color.FromArgb(resultR, resultG, resultB));//绘图
                }
            }

            return bm;//返回调整了光暗后的图片
        }

        那个CheckRange的函数是用来检测经过改动后的红绿蓝三个值是否超出[0,255]的范围的,至于这个功能是比较简单的,所以也不好意思把代码贴出来。

        对了,还有一点的就是,其实光暗值,可以通过用一个numericUpDown控件来获取的,而且这样会比较方便,因为我是这样做的,但是有一点要注意的是,通过numericUpDown控件获取的值numericUpDown.Value应该是要用来int强制把它进行类型转换的,也就是说,(int)numericUpDown.Value。

        最后当然还是要利用pictureBox把调整后的图片显示出来。

  • 相关阅读:
    《飞得更高孙正义传》成为亚洲首富肯定有原因
    AutoController通用自动增删查改
    Silverlight学习笔记第一季(3)扯扯ComboBox
    Silverlight学习笔记第一季(1)DataGrid
    菜鸟混社区之如何看待社区的口水战?
    局部化页面和效率CMS实践系列总结
    图片猜成语(思维@娱乐)
    接口+泛型强大的Repository
    Silverlight学习笔记第一季(2)Listbox横向绑定数据
    poj 2954 Triangle (pick 定理 的应用 )
  • 原文地址:https://www.cnblogs.com/luluping/p/2585558.html
Copyright © 2011-2022 走看看