private void button1_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.RestoreDirectory = true; file.CheckFileExists = false; file.Filter = "Image Files(JPG, PNG)| *.JPG; *.PNG"; if (file.ShowDialog() != DialogResult.OK) { return; } filePath = file.FileName; fileName = file.SafeFileName; Bitmap srcBitmap = new Bitmap(filePath); int w = srcBitmap.Width; int h = srcBitmap.Height; Rectangle rect = new Rectangle(0, 0, w, h); BitmapData bmpData = srcBitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bppRgb); IntPtr ptr = bmpData.Scan0; srcImagePtr = ColorGrps.CreateColorGroupsWithBitmap(ptr, w, h); srcBitmap.UnlockBits(bmpData); pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; pictureBox1.Image = srcBitmap; textBox1.Text = filePath; //for opencv string structure /*pictureBox1.ImageLocation = filePath; * * if(filePath != null) { * string[] temp = filePath.Split('\\'); * filePath = ""; * foreach ( string s in temp) * { * filePath += s; * filePath += "/"; * } * filePath = filePath.Remove(filePath.Length - 1); * }*/ // srcImagePtr = ColorGrps.CreateColorGroups(filePath); IntPtr unknowns = ColorGrps.GetUnknownCount(srcImagePtr); unknownsArr = new int[20]; Marshal.Copy(unknowns, unknownsArr, 0, 20); if (srcImagePtr != IntPtr.Zero) { comboBox1.Items.Clear(); if (ColorGrps.GetBlueCount(srcImagePtr) != 0) { comboBox1.Items.Add("Blue"); } if (ColorGrps.GetRedCount(srcImagePtr) != 0) { comboBox1.Items.Add("Red"); } if (ColorGrps.GetGreenCount(srcImagePtr) != 0) { comboBox1.Items.Add("Green"); } if (ColorGrps.GetYellowCount(srcImagePtr) != 0) { comboBox1.Items.Add("Yellow"); } if (ColorGrps.GetPinkCount(srcImagePtr) != 0) { comboBox1.Items.Add("Pink"); } if (ColorGrps.GetOrangeCount(srcImagePtr) != 0) { comboBox1.Items.Add("Orange"); } if (unknownsArr[0] != -1) { comboBox1.Items.Add("Unknown Colors"); } } DateTime dt = DateTime.Now; String groupCounts = "Black=" + ColorGrps.GetBlackCount(srcImagePtr).ToString() + ";" + "Blue=" + ColorGrps.GetBlueCount(srcImagePtr).ToString() + ";"; groupCounts += "Red=" + ColorGrps.GetRedCount(srcImagePtr).ToString() + ";" + "Green=" + ColorGrps.GetGreenCount(srcImagePtr).ToString() + ";"; groupCounts += "Yellow=" + ColorGrps.GetYellowCount(srcImagePtr).ToString() + ";" + "Pink=" + ColorGrps.GetPinkCount(srcImagePtr).ToString() + ";"; groupCounts += "Orange=" + ColorGrps.GetOrangeCount(srcImagePtr).ToString() + ";" + "Unknowns="; if (unknownsArr[0] == -1) { groupCounts += "0"; } else { int temp; for (temp = 0; unknownsArr[temp + 1] != -1; temp++) { groupCounts += unknownsArr[temp].ToString() + ","; } groupCounts += unknownsArr[temp].ToString(); } byte[] byteArray = new byte[0]; using (MemoryStream stream = new MemoryStream()) { srcBitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); stream.Close(); byteArray = stream.ToArray(); } db = new ImageDBDataContext(); Binary binary = new Binary(byteArray); var imgTable = new ImageTable { ImageName = fileName, Image = binary, ColorCount = ColorGrps.GetGroupCount(srcImagePtr), ColorGroupCounts = groupCounts, Date = dt }; Table <ImageTable> imgTables = db.ImageTables; db.ImageTables.InsertOnSubmit(imgTable); db.SubmitChanges(); loadData(); }
private void loadData() { db = new ImageDBDataContext(); dataGridView1.DataSource = db.ImageTables; }