private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { if (rectNew.Width - 1 > 0 && rectNew.Height - 1 > 0 && bitmapSource != null) { pointEndX = e.X; pointEndY = e.Y; bitmapSource = bitmap; ImageSampleEntity imagesample = new ImageSampleEntity(); Bitmap newbitmap = new Bitmap(rectNew.Width - 1, rectNew.Height - 1); Bitmap chartstacktemp = new Bitmap(pictureBox1.Width, pictureBox1.Height); pictureBox1.DrawToBitmap(chartstacktemp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height)); chartstack.Add(chartstacktemp); g = Graphics.FromImage(newbitmap); g.DrawImage(bitmap, pictureBox1.Left - rectNew.Location.X - pictureBox1.Left - 1, pictureBox1.Top - rectNew.Location.Y - pictureBox1.Top - 1); g.Dispose(); newbitmap.Save(Environment.CurrentDirectory + "\\image\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg"); tempform.chartstack = chartstack; tempform.rectNew = rectNew; tempform.pointStartX = pointStartX; tempform.pointStartY = pointStartY; tempform.pointEndX = pointEndX; tempform.pointEndY = pointEndY; tempform.frameheight = frameheight; tempform.framewidth = framewidth; Settingimageentity tempentity = new Settingimageentity(); tempentity.setimage(newbitmap); tempentity.setparamatername(name); tempform.paramatername = name; tempform.list1.Add(tempentity); for (int k = 0; k < tempform.methodtemp.getsettinglist().Count; k++) { if (((Settingentity)tempform.methodtemp.getsettinglist()[k]).getparamatername() == name) { Settingentity settingentity = ((Settingentity)tempform.methodtemp.getsettinglist()[k]); settingentity.getImageSample().setimagesample(rectNew.X * framewidth, rectNew.Y * frameheight, rectNew.Width * framewidth, rectNew.Height * frameheight); tempform.paramatertype = ((Settingentity)tempform.methodtemp.getsettinglist()[k]).getlinevalue(); tempentity.setparamatertype(((Settingentity)tempform.methodtemp.getsettinglist()[k]).getlinevalue()); } } tempform.neededboxes--; tempform.settingdetectsectionneededvaluelabel.Text = tempform.neededboxes.ToString(); } }
public Controlzoneentity(Bitmap imagevalue, Settingentity tempvalue, int tempframewidth, int tempframeheight)//set different areas for the control line and the test line { InitializeComponent(); if (Form1.language != "") { refreshlanguage(Form1.language); } image = imagevalue; orginalimage = (Bitmap)imagevalue.Clone(); image = new Bitmap(image, new Size(pictureBox1.Height, pictureBox1.Width)); image.RotateFlip(RotateFlipType.Rotate270FlipNone); pictureBox1.Image = image; chartstack.Add(image); comboBox1.SelectedIndex = 4; controlradiobtn.Checked = true; settingentity = tempvalue; settingentity.getImageSample().getcontrolzonelist().Clear(); framewidth = tempframewidth; frameheight = tempframeheight; }
private void contorlzoneentityfinsihbtn_Click(object sender, EventArgs e) { string tempcatgory; if (controlradiobtn.Checked && mark == 0) { tempcatgory = "control"; testtradiobtn.Checked = true; mark = 1; } else { tempcatgory = "test"; } Setzoneentity setzonetemp = new Setzoneentity((recstartY * orginalimage.Width / pictureBox1.Height) * framewidth, (recstartX * orginalimage.Height / pictureBox1.Width) * frameheight, ((recendY - recstartY - 1) * orginalimage.Width / pictureBox1.Height) * framewidth, ((recendX - recstartX - 1) * orginalimage.Height / pictureBox1.Width) * frameheight, tempcatgory); settingentity.getImageSample().getcontrolzonelist().Add(setzonetemp); times++; Bitmap nextbitmap = (Bitmap)pictureBox1.Image; chartstack.Add(nextbitmap); loaddata(); }
private void Settingdetectsectioncopybtn_Click(object sender, EventArgs e) { if (pictureBox1.Image != null) { if (chartstack.Count == 0) { bitmapSource = (Bitmap)pictureBox1.Image; Bitmap chartstacktemp = new Bitmap(pictureBox1.Width, pictureBox1.Height); pictureBox1.DrawToBitmap(chartstacktemp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height)); chartstack.Add(chartstacktemp); } } if (chartstack.Count > 1) { for (int k = 0; k < list1.Count; k++) { Settingimageentity tempsettingimageeneity = (Settingimageentity)list1[k]; if (tempsettingimageeneity.getparamatername() == paramatername) { list1.RemoveAt(k); } } chartstack.RemoveAt(chartstack.Count - 1); pictureBox1.Image = (Bitmap)chartstack[chartstack.Count - 1]; pointStartX = copyStartX; pointEndX = copyEndX; pointEndY = copyEndY; pointStartY = copyStartY; int iWidth = copyEndX - copyStartX; int iHeight = copyEndY - copyStartY; if (chartstack.Count == 0) { bitmapSource = (Bitmap)pictureBox1.Image; } else { bitmapSource = (Bitmap)chartstack[chartstack.Count - 1]; } if (bitmapSource != null) { bitmap = new Bitmap(bitmapSource); Pen pen = new Pen(Color.White); Graphics gh = Graphics.FromImage(bitmap); rectNew = new Rectangle(pointStartX, pointStartY, iWidth, iHeight); gh.DrawRectangle(pen, rectNew); //this.CreateGraphics().DrawImage(bitmap, pictureBox1.Left, pictureBox1.Top, 500, 500); pictureBox1.Image = bitmap; bitmapSource = bitmap; // Graphics.FromImage(bitmap); // g.DrawImage(bitmap,rectNew); Bitmap newbitmap = new Bitmap(rectNew.Width - 1, rectNew.Height - 1); Bitmap chartstacktemp = new Bitmap(pictureBox1.Width, pictureBox1.Height); pictureBox1.DrawToBitmap(chartstacktemp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height)); chartstack.Add(chartstacktemp); g = Graphics.FromImage(newbitmap); //g.DrawImage(bitmap, rectNew.Top, rectNew.Left); g.DrawImage(bitmap, pictureBox1.Left - rectNew.Location.X - pictureBox1.Left - 1, pictureBox1.Top - rectNew.Location.Y - pictureBox1.Top - 1); g.Dispose(); //newbitmap.Save("C:\\Users\\zsd\\Desktop\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg"); Settingimageentity tempentity = new Settingimageentity(); tempentity.setparamatername(paramatername); tempentity.setimage(newbitmap); tempentity.setparamatertype(paramatertype); list1.Add(tempentity); ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointStartX = pointStartX; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointStartY = pointStartY; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointEndX = pointEndX; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointEndY = pointEndY; for (int k = 0; k < methodtemp.getsettinglist().Count; k++) { Settingentity settingentity = (Settingentity)methodtemp.getsettinglist()[k]; if (settingentity.getparamatername() == paramatername) { settingentity.getImageSample().setimagesample(rectNew.X * framewidth, rectNew.Y * frameheight, rectNew.Width * framewidth, rectNew.Height * frameheight); break; } } blnDraw = false; neededboxes--; settingdetectsectionneededvaluelabel.Text = neededboxes.ToString(); } } else { pictureBox1.Image = (Bitmap)chartstack[chartstack.Count - 1]; pointStartX = copyStartX; pointEndX = copyEndX; pointEndY = copyEndY; pointStartY = copyStartY; int iWidth = copyEndX - copyStartX; int iHeight = copyEndY - copyStartY; if (chartstack.Count == 0) { bitmapSource = (Bitmap)pictureBox1.Image; } else { bitmapSource = (Bitmap)chartstack[chartstack.Count - 1]; } if (bitmapSource != null) { bitmap = new Bitmap(bitmapSource); Pen pen = new Pen(Color.White); Graphics gh = Graphics.FromImage(bitmap); rectNew = new Rectangle(pointStartX, pointStartY, iWidth, iHeight); gh.DrawRectangle(pen, rectNew); //this.CreateGraphics().DrawImage(bitmap, pictureBox1.Left, pictureBox1.Top, 500, 500); pictureBox1.Image = bitmap; bitmapSource = bitmap; // Graphics.FromImage(bitmap); // g.DrawImage(bitmap,rectNew); Bitmap newbitmap = new Bitmap(rectNew.Width - 1, rectNew.Height - 1); Bitmap chartstacktemp = new Bitmap(pictureBox1.Width, pictureBox1.Height); pictureBox1.DrawToBitmap(chartstacktemp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height)); chartstack.Add(chartstacktemp); g = Graphics.FromImage(newbitmap); //g.DrawImage(bitmap, rectNew.Top, rectNew.Left); g.DrawImage(bitmap, pictureBox1.Left - rectNew.Location.X - pictureBox1.Left - 1, pictureBox1.Top - rectNew.Location.Y - pictureBox1.Top - 1); g.Dispose(); //newbitmap.Save("C:\\Users\\zsd\\Desktop\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg"); Settingimageentity tempentity = new Settingimageentity(); tempentity.setparamatername(tabControl1.TabPages[tapindexi].Name.ToString()); tempentity.setimage(newbitmap); tempentity.setparamatertype(paramatertype); list1.Add(tempentity); ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointStartX = pointStartX; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointStartY = pointStartY; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointEndX = pointEndX; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointEndY = pointEndY; for (int k = 0; k < methodtemp.getsettinglist().Count; k++) { Settingentity settingentity = (Settingentity)methodtemp.getsettinglist()[k]; if (settingentity.getparamatername() == paramatername) { settingentity.getImageSample().setimagesample(rectNew.X * framewidth, rectNew.Y * frameheight, rectNew.Width * framewidth, rectNew.Height * frameheight); break; } } blnDraw = false; neededboxes--; settingdetectsectionneededvaluelabel.Text = neededboxes.ToString(); } } }
private void upbtn_Click(object sender, EventArgs e) { if (chartstack.Count > 1) { pointStartY = pointStartY - 1; if (pointStartY >= 0) { pointEndY = pointEndY - 1; for (int k = 0; k < list1.Count; k++) { Settingimageentity tempsettingimageeneity = (Settingimageentity)list1[k]; if (tempsettingimageeneity.getparamatername() == paramatername) { list1.RemoveAt(k); } } chartstack.RemoveAt(chartstack.Count - 1); pictureBox1.Image = (Bitmap)chartstack[chartstack.Count - 1]; int iWidth = pointEndX - pointStartX; int iHeight = pointEndY - pointStartY; if (chartstack.Count == 0) { bitmapSource = (Bitmap)pictureBox1.Image; } else { bitmapSource = (Bitmap)chartstack[chartstack.Count - 1]; } if (bitmapSource != null) { //copy the original picture which is stored in bitmapsource and eliminate the old rectangle bitmap = new Bitmap(bitmapSource); Pen pen = new Pen(Color.White); Graphics gh = Graphics.FromImage(bitmap); rectNew = new Rectangle(pointStartX, pointStartY, iWidth, iHeight); //draw rectangle gh.DrawRectangle(pen, rectNew); // show it on the screen //this.CreateGraphics().DrawImage(bitmap, pictureBox1.Left, pictureBox1.Top, 500, 500); pictureBox1.Image = bitmap; bitmapSource = bitmap; // Graphics.FromImage(bitmap); // g.DrawImage(bitmap,rectNew); Bitmap newbitmap = new Bitmap(rectNew.Width - 1, rectNew.Height - 1); Bitmap chartstacktemp = new Bitmap(pictureBox1.Width, pictureBox1.Height); pictureBox1.DrawToBitmap(chartstacktemp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height)); chartstack.Add(chartstacktemp); g = Graphics.FromImage(newbitmap); //g.DrawImage(bitmap, rectNew.Top, rectNew.Left); g.DrawImage(bitmap, pictureBox1.Left - rectNew.Location.X - pictureBox1.Left - 1, pictureBox1.Top - rectNew.Location.Y - pictureBox1.Top - 1); g.Dispose(); //newbitmap.Save("D:\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg"); Settingimageentity tempentity = new Settingimageentity(); tempentity.setparamatername(paramatername); tempentity.setimage(newbitmap); tempentity.setparamatertype(paramatertype); list1.Add(tempentity); ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointStartX = pointStartX; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointStartY = pointStartY; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointEndX = pointEndX; ((Settingimagedetection)tabControl1.TabPages[tapindexi].Controls[0]).pointEndY = pointEndY; for (int k = 0; k < methodtemp.getsettinglist().Count; k++) { Settingentity settingentity = (Settingentity)methodtemp.getsettinglist()[k]; if (settingentity.getparamatername() == paramatername) { settingentity.getImageSample().setimagesample(rectNew.X * framewidth, rectNew.Y * frameheight, rectNew.Width * framewidth, rectNew.Height * frameheight); break; } } blnDraw = false; } } else { pointStartY = pointStartY + 1; } } }