예제 #1
0
        private void DoOCR()
        {
            string s_people = "",
                   s_mail   = "";

            try
            {
                var bitmap = screen_rgb.ToBitmap();

                using (var engine = new Tesseract.TesseractEngine(@"./tessdata", "eng", Tesseract.EngineMode.Default))
                {
                    engine.SetVariable("tessedit_char_whitelist", "0123456789");
                    var people = bitmap.Clone(new Rectangle(230, 250, 130, 25), System.Drawing.Imaging.PixelFormat.Format32bppArgb);
                    using (var page = engine.Process(people))
                    {
                        s_people = Regex.Replace(page.GetText(), "[^0-9]", "");
                    }

                    var mail = bitmap.Clone(new Rectangle(395, 250, 182, 25), System.Drawing.Imaging.PixelFormat.Format32bppArgb);
                    using (var page = engine.Process(mail))
                    {
                        s_mail = Regex.Replace(page.GetText(), "[^0-9]", "");
                    }
                }

                if (string.IsNullOrEmpty(s_people))
                {
                    s_people = "0";
                }
                if (string.IsNullOrEmpty(s_mail))
                {
                    s_mail = "0";
                }

                if (s_mail != "0" && s_people != "0")
                {
                    Stats.Add(DateTime.Now, new Tuple <int, int>(int.Parse(s_people), int.Parse(s_mail)));
                }

                if (!IsActive)
                {
                    return;
                }
                Invoke(new Action(() => { PictureBoxOutput.Image = bitmap; }));
            }
            catch (Exception e)
            {
                AddOutput("OCR Error [$:'" + s_people + "', M:'" + s_mail + "'] " + e.Message + e.StackTrace);
            }
        }
예제 #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            int err_count = 0;

            while (err_count < 2)
            {
                Microsoft.VisualBasic.Interaction.AppActivate("Overwatch");
                SendKeys.SendWait("{PRTSC}");
                System.Diagnostics.Process[] processList = System.Diagnostics.Process.GetProcesses();
                if (System.Windows.Clipboard.ContainsImage())
                {
                    string lngStr   = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), @"tesseract-ocr\\");
                    string langPath = "eng";
                    var    img      = (Bitmap)System.Windows.Forms.Clipboard.GetImage();
                    var    bitmap24 = new Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                    using (var gr = Graphics.FromImage(bitmap24))
                    {
                        gr.DrawImage(img, new Rectangle(0, 0, bitmap24.Width, bitmap24.Height));
                    }

                    using (var tesseract = new Tesseract.TesseractEngine(lngStr, langPath))
                    {
                        tesseract.SetVariable("SEARCH", "1");
                        Tesseract.Page page = tesseract.Process(bitmap24);
                        if (page.GetText().Contains("SEARCH") || page.GetText().Contains("TIME") || page.GetText().Contains("ELAPSED") || page.GetText().Contains("LEAGUE") || page.GetText().Contains("HIGHLIGHTS") || page.GetText().Contains("SOCIAL") || page.GetText().Contains("EXIT"))
                        {
                            err_count = 0;
                        }
                        else
                        {
                            err_count += 1;
                        }
                    }
                }
                Thread.Sleep(50000);
            }

            DateTime dt     = DateTime.Now;
            string   result = dt.ToString("yyyy/MM/dd HH:mm:ss");
            string   lnk    = "https://maker.ifttt.com/trigger/match/with/key/xxxxxxxx/?value1=" + result;

            System.Diagnostics.Process.Start(lnk);

            Environment.Exit(0);
        }
예제 #3
0
 private void Button1_Click(object sender, EventArgs e)
 {
     using (var bmp = Snip())
     {
         if (bmp != null)
         {
             using (var image = new Bitmap(bmp))
             {
                 using (var ocr = new Tesseract.TesseractEngine(@"./tessdata", "eng", Tesseract.EngineMode.Default))
                 {
                     ocr.SetVariable("tessedit_char_whitelist", "0123456789");
                     using (var result = ocr.Process(image, Tesseract.Rect.Empty))
                     {
                         Clipboard.SetText(result.GetText().Trim());
                     }
                 }
             }
         }
     }
 }