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(); } }
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(); } }
/**Добавить в историю текущий рисунок */ 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(); }
/**Добавить в историю текущий рисунок */ 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(); }