Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }