private void Create() { _form = new Form(); _form.Width = (int)(Screen.PrimaryScreen.Bounds.Width * 0.8); _form.Height = (int)(Screen.PrimaryScreen.Bounds.Height * 0.8); _form.Visible = false; //_form.FormClosing += (s, e) => { _form.Hide(); e.Cancel = true; }; //_form.FormClosing += form_FormClosing; _chart = new System.Windows.Forms.DataVisualization.Charting.Chart(); _form.Controls.Add(_chart); _chart.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right); _chart.SetBounds(0, 0, _form.Width, _form.Height - 50); //_chart.ChartAreas.Add(new ChartArea("Area1")); _chart.CursorPositionChanged += this.chart_CursorPositionChanged; _chart.KeyDown += this.chart_KeyDown; _chart.PreviewKeyDown += this.chart_PreviewKeyDown; _chart.MouseClick += _chart_MouseClick; _chart.Focus(); //_label = new Label(); //_form.Controls.Add(_label); //_label.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right); //_label.Width = _form.Width - 50; //_label.Height = 30; //_label.Padding = new System.Windows.Forms.Padding(5); //_label.AutoSize = false; //_label.Enabled = true; //_label.Visible = true; //_label.TabIndex = 0; //_label.Location = new Point(0, 0); //_label.Name = "_label"; //_label.TextAlign = ContentAlignment.TopRight; //_labelBot = new Label(); //_form.Controls.Add(_labelBot); //_labelBot.Anchor = (AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right); //_labelBot.Width = _form.Width; //_labelBot.Enabled = true; ////_labelBot.Location = new Point(0, 10); //_labelBot.Visible = true; //_labelBot.Name = "_labelBot"; _form.Location = new Point(0, 20); IsAllowDispose = true; }
public void histogram(Bitmap my_img, int x1, int y1, int p1, int h1) { int[] br_r = new int[256]; int[] br_g = new int[256]; int[] br_b = new int[256]; int x = 0; int y = 0; for (x = 0; x < my_img.Width; x++) { for (y = 0; y < my_img.Height; y++) { br_r[my_img.GetPixel(x, y).R]++; br_g[my_img.GetPixel(x, y).G]++; br_b[my_img.GetPixel(x, y).B]++; } } Chart charting = new Chart(); // Розміщуємо діаграму на формі charting.Parent = this; // Задаємо параметри елементу charting.SetBounds(x1, y1, p1, h1); // Створюємо нову обл для побудови граф ChartArea oblast = new ChartArea(); // Даємо їй назву, для додавання графіків у майб oblast.Name = "myNewGraph"; // Задаємо ліву і праву границі осі х oblast.AxisX.Minimum = 0; oblast.AxisX.Maximum = 255; // Визначаємо крок сітки oblast.AxisX.MajorGrid.Interval = 1; // Додаємо область до діаграми charting.ChartAreas.Add(oblast); // Створюємо для першого графіку об'єкт Series series1 = new Series(); series1.Color = Color.Blue; // Силка на область для побудови графіку series1.ChartArea = "myNewGraph"; // тип графіка - сплайн series1.ChartType = SeriesChartType.Bar; // ширина лінії графіку series1.BorderWidth = 3; // Назва графіку(для відобр у легенді) // Додаємо діаграми charting.Series.Add(series1); // Таке ж для 2 кольору Series series2 = new Series(); // Силка на обл побудови граф series2.ChartArea = "myNewGraph"; // тип графіка - сплайн series2.ChartType = SeriesChartType.Bar; series2.BorderWidth = 3; series2.Color = Color.Red; // Назва графіку charting.Series.Add(series2); //для 3 кольору Series series3 = new Series(); series3.ChartArea = "myNewGraph"; series3.ChartType = SeriesChartType.Bar; series3.BorderWidth = 3; series3.Color = Color.Green; charting.Series.Add(series3); int[] h = new int[256]; for (int i = 0; i < 256; i++) { h[i] = i; } charting.Series[0].Points.DataBindXY(h, br_b); charting.Series[1].Points.DataBindXY(h, br_r); charting.Series[2].Points.DataBindXY(h, br_g); }
public Form1() { InitializeComponent(); int[] bright_r = new int[256]; int[] bright_g = new int[256]; int[] bright_b = new int[256]; Bitmap my_img = (Bitmap)Bitmap.FromFile(@"image.png"); pictureBox1.Image = my_img; int x = 0; int y = 0; for (x = 0; x < my_img.Width; x++) { for (y = 0; y < my_img.Height; y++) { bright_r[my_img.GetPixel(x, y).R]++; bright_g[my_img.GetPixel(x, y).G]++; bright_b[my_img.GetPixel(x, y).B]++; } } Chart chart; // Создаём новый элемент управления Chart chart = new Chart(); // Помещаем его на форму chart.Parent = this; // Задаём размеры элемента chart.SetBounds(0, 0, 500, 250); // Создаём новую область для построения графика ChartArea area = new ChartArea(); // Даём ей имя (чтобы потом добавлять графики) area.Name = "myGraph"; // Задаём левую и правую границы оси X area.AxisX.Minimum = 0; area.AxisX.Maximum = 255; // Определяем шаг сетки area.AxisX.MajorGrid.Interval = 1; // Добавляем область в диаграмму chart.ChartAreas.Add(area); // Создаём объект для первого графика Series series1 = new Series(); series1.Color = Color.Blue; // Ссылаемся на область для построения графика series1.ChartArea = "myGraph"; // Задаём тип графика - сплайны series1.ChartType = SeriesChartType.Bar; // Указываем ширину линии графика series1.BorderWidth = 3; // Название графика для отображения в легенде // Добавляем в список графиков диаграммы chart.Series.Add(series1); // Аналогичные действия для второго графика Series series2 = new Series(); // Ссылаемся на область для построения графика series2.ChartArea = "myGraph"; // Задаём тип графика - сплайны series2.ChartType = SeriesChartType.Bar; // Указываем ширину линии графика series2.BorderWidth = 3; series2.Color = Color.Red; // Название графика для отображения в легенде // Добавляем в список графиков диаграммы chart.Series.Add(series2); // Series series3 = new Series(); // Ссылаемся на область для построения графика series3.ChartArea = "myGraph"; // Задаём тип графика - сплайны series3.ChartType = SeriesChartType.Bar; // Указываем ширину линии графика series3.BorderWidth = 3; // Название графика для отображения в легенде // Добавляем в список графиков диаграммы series3.Color = Color.Green; chart.Series.Add(series3); // Аналогичные действия для второго графика int[] h = new int[256]; for (int i = 0; i < 256; i++) { h[i] = i; } chart.Series[0].Points.DataBindXY(h, bright_b); chart.Series[1].Points.DataBindXY(h, bright_r); chart.Series[2].Points.DataBindXY(h, bright_g); }