最近做一个项目想要使用色阶控件。google了一下,发现了下面的连接。
A simple histogram displaying control
于是下载下来,但和我要的还有一定差距,我修改了一下。
我这边就修改了一下,效果如下:
使用方法:
新建一个FORM,name:Histogram_Form;在form加入该控件。
调用方法:
/// <summary>
/// 显示色阶图
/// </summary>
public void DrawHistogram()
{
Histogram_Form form = new Histogram_Form();
Bitmap map = (Bitmap)this.Image;
form.histogram.DrawHistogram(GetHistogram(map));
form.ShowDialog();
}
/// <summary>
/// 得到色阶数据
/// </summary>
/// <param name="picture"></param>
/// <returns></returns>
public long[] GetHistogram(System.Drawing.Bitmap picture)
{
long[] myHistogram = new long[256];
for (int i = 0; i < picture.Size.Width; i++)
for (int j = 0; j < picture.Size.Height; j++)
{
Point p = new Point(i, j);
// 判断是否在区域内
if (null == region || region.IsVisible(p))
{
System.Drawing.Color c = picture.GetPixel(i, j);
long Temp = 0;
Temp += c.R;
Temp += c.G;
Temp += c.B;
Temp = (int)Temp / 3;
myHistogram[Temp]++;
}
}
return myHistogram;
}
控件地址:http://download.csdn.net/detail/yueguanyun/5259690