示例#1
0
 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);
 }
示例#2
0
        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;
        }
示例#3
0
        private static void SetXls(string url, string site, ImageClass imageClass, string origName)
        {
            string[] imaName = GetPictureDate(url).Split('.');
            string fileName = "";
            for (int i = 0; i < imaName.Length - 1; i++)
            {
                fileName += imaName[i] + '.';
            }
            fileName += "xlsx";

            string directory = Path.Combine(Application.StartupPath, new Uri(site).Host, "rAndreevLists");
            if (!File.Exists(Path.Combine(directory, fileName)))
            {
                imageClass.RecognizeToExcel(directory, fileName);
                ExcelClass xls = new ExcelClass();
                try
                {
                    xls.OpenDocument(Path.Combine(directory, fileName), false);
                    xls.AddPicture(origName, "H1");
                }
                finally
                {
                    xls.CloseDocumentSave();
                    xls.Dispose();
                }
            }
        }