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