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


 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;
        }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM