using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace GrafEditor { public partial class Form_kr : Form { Color barva; Color vypln; Pen pero; Brush stetec; Graphics grfx; int w, h, delka, vyska; bool press; int x, y, xs, ys; Image obrazek; public Form_kr() { InitializeComponent(); w = pictureBox_kr.Width; h = pictureBox_kr.Height; Bitmap bm = new Bitmap(w, h); grfx = Graphics.FromImage(bm); stetec = new SolidBrush(Color.White); grfx.FillRectangle(stetec, 0, 0, w, h); pictureBox_kr.Image = bm; } private void Form_kr_Load(object sender, EventArgs e) { radioButton_usecka.Checked = true; radioButton_cara.Checked = false; radioButton_elipsa.Checked = false; radioButton_elipsa_vypln.Checked = false; radioButton_rectangle.Checked = false; radioButton_rectangle_vypln.Checked = false; comboBox_tl.Text = "1"; barva = Color.White; vypln = Color.White; xs = 0; ys = 0; } private void Form_kr_SizeChanged(object sender, EventArgs e) { delka = ClientSize.Width; vyska = ClientSize.Height; panel_config.Width = delka - 6; panel_config.Height = 60; pictureBox_kr.Width = delka - 30; pictureBox_kr.Height = vyska - 90; w = pictureBox_kr.Width; h = pictureBox_kr.Height; Bitmap bm = new Bitmap(w, h); grfx = Graphics.FromImage(bm); stetec = new SolidBrush(Color.White); grfx.FillRectangle(stetec, 0, 0, w, h); pictureBox_kr.Image = bm; } private void textBox_barva_cara_Click(object sender, EventArgs e) { if (colorDialog1.ShowDialog() == DialogResult.OK) { barva = colorDialog1.Color; textBox_barva_cara.BackColor = barva; } } private void textBox_barva_vypln_Click(object sender, EventArgs e) { if (colorDialog1.ShowDialog() == DialogResult.OK) { vypln = colorDialog1.Color; textBox_barva_vypln.BackColor = vypln; } } private void pictureBox_kr_MouseDown(object sender, MouseEventArgs e) { press = true; xs = e.X; ys = e.Y; obrazek = new Bitmap(pictureBox_kr.Image); } private void pictureBox_kr_MouseUp(object sender, MouseEventArgs e) { press = false; } private void pictureBox_kr_MouseMove(object sender, MouseEventArgs e) { if (press) { grfx = Graphics.FromImage(pictureBox_kr.Image); grfx.DrawImage(obrazek, 0, 0); if (radioButton_usecka.Checked) { pero = new Pen(barva); pero.Width = Convert.ToInt32(comboBox_tl.Text); grfx.DrawLine(pero, xs, ys, e.X, e.Y); } if (radioButton_elipsa.Checked) { pero = new Pen(barva); pero.Width = Convert.ToInt32(comboBox_tl.Text); grfx.DrawEllipse(pero, xs, ys, e.X - xs, e.Y - ys); } if (radioButton_elipsa_vypln.Checked) { pero = new Pen(barva); pero.Width = Convert.ToInt32(comboBox_tl.Text); grfx.DrawEllipse(pero, xs, ys, e.X - xs, e.Y - ys); stetec = new SolidBrush(vypln); grfx.FillEllipse(stetec, xs+2, ys+2, e.X - xs-3, e.Y - ys-3); } if (radioButton_rectangle.Checked) { pero = new Pen(barva); pero.Width = Convert.ToInt32(comboBox_tl.Text); grfx.DrawRectangle(pero, xs, ys, e.X - xs, e.Y - ys); } if (radioButton_rectangle_vypln.Checked) { pero = new Pen(barva); pero.Width = Convert.ToInt32(comboBox_tl.Text); grfx.DrawRectangle(pero, xs, ys, e.X - xs, e.Y - ys); stetec = new SolidBrush(vypln); grfx.FillRectangle(stetec, xs+2, ys+2, e.X - xs-3, e.Y - ys-3); } if (radioButton_cara.Checked) { x = e.X; y = e.Y; pero = new Pen(barva); pero.Width = Convert.ToInt32(comboBox_tl.Text); grfx.DrawLine(pero, xs, ys, x, y); obrazek = new Bitmap(pictureBox_kr.Image); grfx.DrawImage(obrazek, 0, 0); xs = e.X; ys = e.Y; } } pictureBox_kr.Invalidate(); pictureBox_kr.Update(); } private void button_uloz_Click(object sender, EventArgs e) { SaveFileDialog Dialog = new SaveFileDialog(); Dialog.InitialDirectory = System.Environment.CurrentDirectory; Dialog.Filter = "PNG Files(*.png)|*.png"; if (Dialog.ShowDialog() == DialogResult.OK) { pictureBox_kr.Image.Save(Dialog.FileName, ImageFormat.Png); } else { MessageBox.Show("Obrázek nebyl uložen!", "Varování", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } private void button_vymazat_Click(object sender, EventArgs e) { comboBox_tl.Text = "1"; barva = Color.White; vypln = Color.White; textBox_barva_cara.BackColor = barva; textBox_barva_vypln.BackColor = vypln; grfx.Clear(vypln); x = 0; y = 0; pictureBox_kr.Refresh(); } } }