private void button3_Click(object sender, EventArgs e) { try { RGB = new[] { int.Parse(textBox1.Text), int.Parse(textBox2.Text), int.Parse(textBox3.Text) }; var files = _dir.GetFiles("*.png", SearchOption.AllDirectories); var symbols = new List <OCRSymbol>(); foreach (var fileInfo in files) { var img = (Bitmap)Image.FromFile(fileInfo.FullName); var s = new OCRSymbol(fileInfo.Name.Substring(0, fileInfo.Name.LastIndexOf(".")), img.Width, img.Height); var good = new List <Point>(); var bad = new List <Point>(); for (int i = 0; i < img.Width; i++) { for (int j = 0; j < img.Height; j++) { var pixel = img.GetPixel(i, j); if ((pixel.R == RGB[0]) && (pixel.G == RGB[1]) && (pixel.B == RGB[2])) { bad.Add(new Point(i, j)); } else { good.Add(new Point(i, j)); } } } s.Good = good; s.Bad = bad; symbols.Add(s); } var maxWidth = symbols.Max(c => c.Width); var maxHeight = symbols.Max(c => c.Height); symbols.ForEach(c => c.TopOffset = maxHeight - c.Height); OCRFont = new OCRFont(maxWidth, maxHeight); OCRFont.Symbols = symbols; ClosedByOk = true; Close(); } catch (Exception) { MessageBox.Show("Ошибка ввода"); throw; } }
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { if (listBox1.SelectedIndex != -1) { _selected = (OCRSymbol)listBox1.Items[listBox1.SelectedIndex]; textBox1.Text = _selected.Width.ToString(); textBox2.Text = _selected.Height.ToString(); textBox3.Text = _selected.TopOffset.ToString(); DrawImg(_selected.Width, _selected.Height, -1, -1); } }