private Bitmap DrawCircles(Image <Rgb, byte> img) { var settings = new CalculatorSettings() { Color = ChoosenColor_PictureBox.BackColor, Threshold = Convert.ToInt32(Threshold_UpDown.Value), NumberOfTriangles = Convert.ToInt32(Triangles_UpDown.Value) }; Calculator = new CircumscribedCirclesFinder(img, settings); var l = Calculator.FindTriangleContour(); foreach (var el in l) { img.Draw(el.Circle, new Rgb(0, 0, 255), 2); var label = new Label { Location = PointScaler.ScaleToPictureBox(el.LabelPosition), Text = el.Index.ToString(), AutoSize = true, Visible = true, ForeColor = ChoosenColor_PictureBox.BackColor.InvertColor(), BackColor = Color.Transparent }; Image_PictureBox.Controls.Add(label); } return(img.ToBitmap()); }
private void MainForm_Load(object sender, EventArgs e) { SourceImage = Resources.test_image; PointScaler = new PointScaler(Image_PictureBox.Image.Size, Image_PictureBox.Size); OpenFile_Dialog.Filter = OpenFileFilter; SaveFile_Dialog.Filter = SaveFileFilter; Set_Threshold_UpDown(); }
private void OpenImage_Button_Click(object sender, EventArgs e) { OpenFile_Dialog.FileName = ""; if (OpenFile_Dialog.ShowDialog() == DialogResult.OK) { SourceImage = new Bitmap(OpenFile_Dialog.FileName); Image_PictureBox.Image = SourceImage; Image_PictureBox.Controls.Clear(); PointScaler = new PointScaler(Image_PictureBox.Image.Size, Image_PictureBox.Size); } }
private void SaveImage_Button_Click(object sender, EventArgs e) { if (SaveFile_Dialog.ShowDialog() == DialogResult.OK) { using (var g = Graphics.FromImage(Image_PictureBox.Image)) { foreach (var el in Image_PictureBox.Controls) { var label = (Label)el; g.DrawString(label.Text, DefaultFont, new SolidBrush(label.ForeColor), PointScaler.ScaleToSource(Image_PictureBox.Size, label.Location)); } } Image_PictureBox.Image.Save(SaveFile_Dialog.FileName); } }