From f5f6056db19f9ad8b842d2aa1c44280c9ba89e9f Mon Sep 17 00:00:00 2001 From: maxluli Date: Wed, 8 Jun 2022 16:20:55 +0200 Subject: [PATCH] Added a eyedropper tool but its buggy af and I dont know why --- Paint_2/Form1.Designer.cs | 21 +++++++++++++++++-- Paint_2/Form1.cs | 44 ++++++++++++++++++++++++++++++++------- 2 files changed, 55 insertions(+), 10 deletions(-) diff --git a/Paint_2/Form1.Designer.cs b/Paint_2/Form1.Designer.cs index 1eda01d..13be64c 100644 --- a/Paint_2/Form1.Designer.cs +++ b/Paint_2/Form1.Designer.cs @@ -55,6 +55,7 @@ this.btnColorHistory1 = new System.Windows.Forms.Button(); this.btnClear = new System.Windows.Forms.Button(); this.panelTools = new System.Windows.Forms.Panel(); + this.btnEyeDrop = new System.Windows.Forms.Button(); this.pbxSample = new System.Windows.Forms.PictureBox(); this.btnRandomColor = new System.Windows.Forms.Button(); this.btnColorPicker = new System.Windows.Forms.Button(); @@ -395,9 +396,9 @@ this.panelTools.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.panelTools.BackColor = System.Drawing.Color.Transparent; this.panelTools.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panelTools.Controls.Add(this.btnEyeDrop); this.panelTools.Controls.Add(this.pbxSample); this.panelTools.Controls.Add(this.btnRandomColor); - this.panelTools.Controls.Add(this.btnColorPicker); this.panelTools.Controls.Add(this.btnColorHistory1); this.panelTools.Controls.Add(this.label4); this.panelTools.Controls.Add(this.btnColorHistory2); @@ -409,6 +410,20 @@ this.panelTools.Size = new System.Drawing.Size(200, 193); this.panelTools.TabIndex = 31; // + // btnEyeDrop + // + this.btnEyeDrop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(59)))), ((int)(((byte)(59))))); + this.btnEyeDrop.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.btnEyeDrop.Font = new System.Drawing.Font("Cascadia Code", 10.2F); + this.btnEyeDrop.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); + this.btnEyeDrop.Location = new System.Drawing.Point(11, 74); + this.btnEyeDrop.Name = "btnEyeDrop"; + this.btnEyeDrop.Size = new System.Drawing.Size(178, 33); + this.btnEyeDrop.TabIndex = 36; + this.btnEyeDrop.Text = "EyeDropper"; + this.btnEyeDrop.UseVisualStyleBackColor = false; + this.btnEyeDrop.Click += new System.EventHandler(this.btnEyeDrop_Click); + // // pbxSample // this.pbxSample.Location = new System.Drawing.Point(10, 152); @@ -437,7 +452,7 @@ this.btnColorPicker.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnColorPicker.Font = new System.Drawing.Font("Cascadia Code", 10.2F); this.btnColorPicker.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247))))); - this.btnColorPicker.Location = new System.Drawing.Point(10, 72); + this.btnColorPicker.Location = new System.Drawing.Point(733, 12); this.btnColorPicker.Name = "btnColorPicker"; this.btnColorPicker.Size = new System.Drawing.Size(177, 35); this.btnColorPicker.TabIndex = 33; @@ -605,6 +620,7 @@ this.ClientSize = new System.Drawing.Size(1132, 655); this.Controls.Add(this.panel3); this.Controls.Add(this.panel2); + this.Controls.Add(this.btnColorPicker); this.Controls.Add(this.panel1); this.Controls.Add(this.panelHoverColor); this.Controls.Add(this.panelSelectedColor); @@ -685,6 +701,7 @@ private System.Windows.Forms.Button button1; private System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.Button btnLoadFile; + private System.Windows.Forms.Button btnEyeDrop; } } diff --git a/Paint_2/Form1.cs b/Paint_2/Form1.cs index 03b4713..bc07c10 100644 --- a/Paint_2/Form1.cs +++ b/Paint_2/Form1.cs @@ -22,13 +22,14 @@ namespace Paint_2 { const int WINDOW_OFFSET = 15; const string DEFAULT_FILEPATH = "C:/Paint2/Drawings/"; - Color FLAT_RED = Color.FromArgb(0xC6,0x28,0x28); - Color FLAT_GREEN = Color.FromArgb(0x00,0x89,0x7B); + Color FLAT_RED = Color.FromArgb(0xC6, 0x28, 0x28); + Color FLAT_GREEN = Color.FromArgb(0x00, 0x89, 0x7B); public Sketch sketch; List toolList; bool drawing = false; bool randomColor = false; + bool eyeDropping = false; Random rnd; Color hoveringColor; public PaintForm() @@ -51,14 +52,28 @@ namespace Paint_2 } private void canvas_MouseDown(object sender, MouseEventArgs e) { - drawing = true; - if (randomColor) + if (eyeDropping) { - sketch.StartDrawing(MousePositionToCanvasPosition(), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)), (int)nupPencilWidth.Value); + Color pointedColor = GetHoverColor(); + if (sketch.CurrentTool.Color != pointedColor) + { + sketch.ChangePaintToolColor(pointedColor); + eyeDropping = false; + RefreshUi(); + //sketch.CurrentTool.Color = pointedColor; + } } else { - sketch.StartDrawing(MousePositionToCanvasPosition(), sketch.CurrentTool.Color, (int)nupPencilWidth.Value); + drawing = true; + if (randomColor) + { + sketch.StartDrawing(MousePositionToCanvasPosition(), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)), (int)nupPencilWidth.Value); + } + else + { + sketch.StartDrawing(MousePositionToCanvasPosition(), sketch.CurrentTool.Color, (int)nupPencilWidth.Value); + } } } private void canvas_MouseUp(object sender, MouseEventArgs e) @@ -127,13 +142,21 @@ namespace Paint_2 { btnRandomColor.BackColor = FLAT_RED; } + if (eyeDropping) + { + btnEyeDrop.BackColor = FLAT_GREEN; + } + else + { + btnEyeDrop.BackColor = FLAT_RED; + } } private Bitmap DrawSample(Size size) { - Bitmap map = new Bitmap(size.Width,size.Height); + Bitmap map = new Bitmap(size.Width, size.Height); Graphics gr = Graphics.FromImage(map); - gr.DrawLine(new Pen(sketch.CurrentTool.Color,sketch.CurrentTool.Width),new Point(0,0),new Point(size.Width,size.Height)); + gr.DrawLine(new Pen(sketch.CurrentTool.Color, sketch.CurrentTool.Width), new Point(0, 0), new Point(size.Width, size.Height)); return map; } @@ -245,5 +268,10 @@ namespace Paint_2 { } + + private void btnEyeDrop_Click(object sender, EventArgs e) + { + eyeDropping = !eyeDropping; + } } }