码迷,mamicode.com
首页 > 其他好文 > 详细

判断一张图片的颜色数和亮度值

时间:2018-06-12 22:25:04      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:new   inf   ret   float   ++   obj   string   一个   each   

 static void Main(string[] args)
        {
           var di=new DirectoryInfo(@"C:\Users\Administrator\Desktop\pic");
            foreach (var fi in di.GetFiles())
            {
                var colorCount = 0;
                float lightness = 0;
                GetPicColorCountAndLightness(fi.FullName, out colorCount, out lightness);
                Console.WriteLine(fi.Name + "     " + colorCount + "      " + lightness);
            }
           Console.ReadKey();
        }

        /// <summary>
        /// 功能:输入一个图片的路径,返回这张图片使用的颜色个数和亮度
        /// 作者:黄海
        /// 时间:2018-06-12
        /// </summary>
        /// <param name="picPath"></param>
        /// <param name="colorCount"></param>
        /// <param name="lightNess"></param>
        /// <returns></returns>
        public static void GetPicColorCountAndLightness(string picPath,out int colorCount,out float lightNess)
        {
            var dict=new Dictionary<Color,int>();
            var bmpobj = new Bitmap(picPath);
            float allLightness = 0;
            int count = 0;
            for (var i = 0; i < bmpobj.Height; i++)
            {
                for (var j = 0; j < bmpobj.Width; j++)
                {
                    count++;
                    var a=bmpobj.GetPixel(j, i);
                    dict[a] = 1;

                    //float hue = a.GetHue();
                    //float saturation = a.GetSaturation();
                    allLightness += a.GetBrightness();
                }
            }
            colorCount = dict.Count;
            lightNess = allLightness;
        }

 

判断一张图片的颜色数和亮度值

标签:new   inf   ret   float   ++   obj   string   一个   each   

原文地址:https://www.cnblogs.com/littlehb/p/9175176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!