예제 #1
0
 private void bt_windows_Click(object sender, EventArgs e)
 {
     HistoryForm form = new HistoryForm(history);
     form.ShowDialog();
     if (form.ResultImage != null)
     {
         // выбран рисунок, сохраняем старый, показываем новый
         bt_window_Click(null, null);
         img = new Figures.BackImage(form.ResultImage);
         form.Dispose();
         picture.Invalidate();
     }
 }
예제 #2
0
        private void bt_windows_Click(object sender, EventArgs e)
        {
            HistoryForm form = new HistoryForm(history);

            form.ShowDialog();
            if (form.ResultImage != null)
            {
                // выбран рисунок, сохраняем старый, показываем новый
                bt_window_Click(null, null);
                img = new Figures.BackImage(form.ResultImage);
                form.Dispose();
                picture.Invalidate();
            }
        }
예제 #3
0
        private void button9_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();

            open.Filter = "*.JPG, *.PNG|*.jpg;*.png";
            if (open.ShowDialog() == DialogResult.OK)
            {
                //добавить в историю
                bt_window_Click(null, null);
                img           = new Figures.BackImage(Image.FromFile(open.FileName));
                picture.Image = null;
                picture.Invalidate();
            }
        }
예제 #4
0
        /**Добавить в историю текущий рисунок */
        private void bt_window_Click(object sender, EventArgs e)
        {
            //проверим если есть хоть одна фигура кроме резинки
            bool allIsEraser = true;

            foreach (Figures.Shape sh in _shapes)
            {
                if (!(sh is Figures.Eraser))
                {
                    allIsEraser = false;
                }
            }

            //добавим в историю
            if (_shapes.Count > 0 && !allIsEraser)
            {
                Bitmap   canvas = new Bitmap(picture.ClientSize.Width, picture.ClientSize.Height);
                Graphics g      = Graphics.FromImage(canvas);
                g.SmoothingMode      = SmoothingMode.HighQuality;
                g.CompositingQuality = CompositingQuality.HighQuality;
                //заливаем белым холст
                g.FillRectangle(new SolidBrush(Color.White), 0, 0, picture.Width, picture.Height);
                //проектируем фоновый рисунок
                if (img != null)
                {
                    img.Draw(g);
                }
                //перерисуем всё на canvas
                foreach (var shape in _shapes)
                {
                    shape.Draw(g);
                }
                _currentFigure.Draw(g);
                history.Insert(0, canvas);
                canvas.Tag = DateTime.Now.ToString("d-MM-yyyy HH-mm-ss");
            }
            if (history.Count > 15)
            {
                Image image = history[history.Count - 1];
                image.Save(Application.LocalUserAppDataPath + "\\" + image.Tag.ToString() + ".png", ImageFormat.Png);
                history.RemoveAt(history.Count - 1);
            }

            //сотрём холст
            _shapes.Clear();
            img = null;
            picture.Invalidate();
        }
예제 #5
0
        /**Добавить в историю текущий рисунок */
        private void bt_window_Click(object sender, EventArgs e)
        {
            //проверим если есть хоть одна фигура кроме резинки
            bool allIsEraser = true;
            foreach (Figures.Shape sh in _shapes)
                if (!(sh is Figures.Eraser)) allIsEraser = false;

            //добавим в историю
            if (_shapes.Count > 0 && !allIsEraser)
            {
                Bitmap canvas = new Bitmap(picture.ClientSize.Width, picture.ClientSize.Height);
                Graphics g = Graphics.FromImage(canvas);
                g.SmoothingMode = SmoothingMode.HighQuality;
                g.CompositingQuality = CompositingQuality.HighQuality;
                //заливаем белым холст
                g.FillRectangle(new SolidBrush(Color.White), 0, 0, picture.Width, picture.Height);
                //проектируем фоновый рисунок
                if (img != null) img.Draw(g);
                //перерисуем всё на canvas
                foreach (var shape in _shapes)
                    shape.Draw(g);
                _currentFigure.Draw(g);
                history.Insert(0, canvas);
                canvas.Tag = DateTime.Now.ToString("d-MM-yyyy HH-mm-ss");
            }
            if (history.Count > 15)
            {
                Image image = history[history.Count-1];
                image.Save(Application.LocalUserAppDataPath + "\\" + image.Tag.ToString() + ".png", ImageFormat.Png);
                history.RemoveAt(history.Count-1);
            }

            //сотрём холст
            _shapes.Clear();
            img = null;
            picture.Invalidate();
        }
예제 #6
0
 private void button9_Click(object sender, EventArgs e)
 {
     OpenFileDialog open = new OpenFileDialog();
     open.Filter = "*.JPG, *.PNG|*.jpg;*.png";
     if (open.ShowDialog() == DialogResult.OK)
     {
         //добавить в историю
         bt_window_Click(null, null);
         img = new Figures.BackImage(Image.FromFile(open.FileName));
         picture.Image = null;
         picture.Invalidate();
     }
 }