Added a eyedropper tool but its buggy af and I dont know why

This commit is contained in:
2022-06-08 16:20:55 +02:00
parent d1d1b4936e
commit f5f6056db1
2 changed files with 55 additions and 10 deletions

View File

@@ -55,6 +55,7 @@
this.btnColorHistory1 = new System.Windows.Forms.Button(); this.btnColorHistory1 = new System.Windows.Forms.Button();
this.btnClear = new System.Windows.Forms.Button(); this.btnClear = new System.Windows.Forms.Button();
this.panelTools = new System.Windows.Forms.Panel(); this.panelTools = new System.Windows.Forms.Panel();
this.btnEyeDrop = new System.Windows.Forms.Button();
this.pbxSample = new System.Windows.Forms.PictureBox(); this.pbxSample = new System.Windows.Forms.PictureBox();
this.btnRandomColor = new System.Windows.Forms.Button(); this.btnRandomColor = new System.Windows.Forms.Button();
this.btnColorPicker = 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.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.panelTools.BackColor = System.Drawing.Color.Transparent; this.panelTools.BackColor = System.Drawing.Color.Transparent;
this.panelTools.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; 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.pbxSample);
this.panelTools.Controls.Add(this.btnRandomColor); this.panelTools.Controls.Add(this.btnRandomColor);
this.panelTools.Controls.Add(this.btnColorPicker);
this.panelTools.Controls.Add(this.btnColorHistory1); this.panelTools.Controls.Add(this.btnColorHistory1);
this.panelTools.Controls.Add(this.label4); this.panelTools.Controls.Add(this.label4);
this.panelTools.Controls.Add(this.btnColorHistory2); this.panelTools.Controls.Add(this.btnColorHistory2);
@@ -409,6 +410,20 @@
this.panelTools.Size = new System.Drawing.Size(200, 193); this.panelTools.Size = new System.Drawing.Size(200, 193);
this.panelTools.TabIndex = 31; 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 // pbxSample
// //
this.pbxSample.Location = new System.Drawing.Point(10, 152); this.pbxSample.Location = new System.Drawing.Point(10, 152);
@@ -437,7 +452,7 @@
this.btnColorPicker.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.btnColorPicker.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.btnColorPicker.Font = new System.Drawing.Font("Cascadia Code", 10.2F); 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.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.Name = "btnColorPicker";
this.btnColorPicker.Size = new System.Drawing.Size(177, 35); this.btnColorPicker.Size = new System.Drawing.Size(177, 35);
this.btnColorPicker.TabIndex = 33; this.btnColorPicker.TabIndex = 33;
@@ -605,6 +620,7 @@
this.ClientSize = new System.Drawing.Size(1132, 655); this.ClientSize = new System.Drawing.Size(1132, 655);
this.Controls.Add(this.panel3); this.Controls.Add(this.panel3);
this.Controls.Add(this.panel2); this.Controls.Add(this.panel2);
this.Controls.Add(this.btnColorPicker);
this.Controls.Add(this.panel1); this.Controls.Add(this.panel1);
this.Controls.Add(this.panelHoverColor); this.Controls.Add(this.panelHoverColor);
this.Controls.Add(this.panelSelectedColor); this.Controls.Add(this.panelSelectedColor);
@@ -685,6 +701,7 @@
private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button1;
private System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button btnLoadFile; private System.Windows.Forms.Button btnLoadFile;
private System.Windows.Forms.Button btnEyeDrop;
} }
} }

View File

@@ -22,13 +22,14 @@ namespace Paint_2
{ {
const int WINDOW_OFFSET = 15; const int WINDOW_OFFSET = 15;
const string DEFAULT_FILEPATH = "C:/Paint2/Drawings/"; const string DEFAULT_FILEPATH = "C:/Paint2/Drawings/";
Color FLAT_RED = Color.FromArgb(0xC6,0x28,0x28); Color FLAT_RED = Color.FromArgb(0xC6, 0x28, 0x28);
Color FLAT_GREEN = Color.FromArgb(0x00,0x89,0x7B); Color FLAT_GREEN = Color.FromArgb(0x00, 0x89, 0x7B);
public Sketch sketch; public Sketch sketch;
List<PaintTool> toolList; List<PaintTool> toolList;
bool drawing = false; bool drawing = false;
bool randomColor = false; bool randomColor = false;
bool eyeDropping = false;
Random rnd; Random rnd;
Color hoveringColor; Color hoveringColor;
public PaintForm() public PaintForm()
@@ -51,14 +52,28 @@ namespace Paint_2
} }
private void canvas_MouseDown(object sender, MouseEventArgs e) private void canvas_MouseDown(object sender, MouseEventArgs e)
{ {
drawing = true; if (eyeDropping)
if (randomColor)
{ {
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 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) private void canvas_MouseUp(object sender, MouseEventArgs e)
@@ -127,13 +142,21 @@ namespace Paint_2
{ {
btnRandomColor.BackColor = FLAT_RED; btnRandomColor.BackColor = FLAT_RED;
} }
if (eyeDropping)
{
btnEyeDrop.BackColor = FLAT_GREEN;
}
else
{
btnEyeDrop.BackColor = FLAT_RED;
}
} }
private Bitmap DrawSample(Size size) 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); 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; return map;
} }
@@ -245,5 +268,10 @@ namespace Paint_2
{ {
} }
private void btnEyeDrop_Click(object sender, EventArgs e)
{
eyeDropping = !eyeDropping;
}
} }
} }