public OCRReader(OCRFont font, Color bgOrFontColor, bool useForeColor) { BgOrForeColor = bgOrFontColor; UseForeGround = useForeColor; Font = font; if (Font.Symbols.Select(c=>c.Name).Contains("$")) { PlayerStackDollarWidth = Font.Symbols.Where(c => c.Name == "$").Single().Width; PlayerStackDotWidth = Font.Symbols.Where(c => c.Name == ".").Single().Width; } }
public OCRReader(OCRFont font, Color bgOrFontColor, bool useForeColor) { BgOrForeColor = bgOrFontColor; UseForeGround = useForeColor; Font = font; if (Font.Symbols.Select(c => c.Name).Contains("$")) { PlayerStackDollarWidth = Font.Symbols.Where(c => c.Name == "$").Single().Width; PlayerStackDotWidth = Font.Symbols.Where(c => c.Name == ".").Single().Width; } }
public MainForm() { InitializeComponent(); var prms = Environment.CommandLine.Split(' '); if (prms.Length >= 2) { var startFont = prms[1]; if (File.Exists(startFont.Trim('"'))) { _font = OCRFont.Load(startFont.Trim('"')); ReloadFont(); } } }
private void button1_Click(object sender, EventArgs e) { int[] RGB; if (checkBox1.Checked) { RGB = new[] { 255, 255, 255 }; } else { RGB = new[] { 0, 0, 0 }; } _font = OCRFont.Load(button2.Text); _reader = new OCRReader(_font, Color.FromArgb(RGB[0], RGB[1], RGB[2]), checkBox1.Checked ? true : false); if ((_font == null) || (pictureBox1.Image == null)) { MessageBox.Show("Выберите изображение и шрифт"); return; } var d = DateTime.Now; var img = (Bitmap) pictureBox1.Image; Bitmap s; textBox1.Text = _reader.Recognize(ref img, out s); pictureBox2.Image = _reader.Crop((Bitmap) pictureBox1.Image); pictureBox3.Image = s; var time = DateTime.Now - d; button1.Text = time.TotalMilliseconds.ToString(); }
private void импортToolStripMenuItem_Click(object sender, EventArgs e) { var w = new ImportForm(); w.ShowDialog(); if (ImportForm.ClosedByOk) { _font = ImportForm.OCRFont; ReloadFont(); } }
private void загрузитьToolStripMenuItem_Click(object sender, EventArgs e) { var dlg = new OpenFileDialog(); dlg.Filter = "*.pft|*.pft"; if (dlg.ShowDialog() == DialogResult.OK) { _font = OCRFont.Load(dlg.FileName); ReloadFont(); } }
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; } }