public static string Recognize(Bitmap bitmap, int series) { Dictionary <string, int> versions = new Dictionary <string, int>(); using (ImageClass image = new ImageClass(bitmap)) { for (int i = 0; i < series; i++) { string result = ""; try { using (Bitmap b = new Bitmap(image.BitImage)) { result = Recognize(b); } } catch (RecognitionEngineException exception) { //если ошибка из-за отсутствия текста if (exception.ErrorCode == 6553609) { if (!versions.ContainsKey(result)) { versions.Add(result, 1); } break; } //если ошибка из-за отсутствия текста[2] if (exception.ErrorCode == 6684676) { if (!versions.ContainsKey(result)) { versions.Add(result, 1); } break; } bitmap.Save(Path.Combine(Application.StartupPath, bitmap.GetHashCode().ToString() + ".png"), ImageFormat.Png); throw; } if (versions.ContainsKey(result)) { versions[result]++; } else { versions.Add(result, 1); } image.Resize(0.9); } } int max = 0; string sMax = ""; foreach (KeyValuePair <string, int> pair in versions) { if (string.IsNullOrEmpty(pair.Key)) continue; if (pair.Value > max) { sMax = pair.Key; max = pair.Value; } } return sMax; }
private static void ResizeImage(ImageClass imageClass, string site) { imageClass.Resize(10); string directory = Path.Combine(Application.StartupPath, new Uri(site).Host, "zoomed"); Directory.CreateDirectory(directory); imageClass.SaveAs(directory); }