using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    public class OCR
    {
        private Tesseract.TesseractEngine eng;

        public OCR()
        {
            try
            {
                LogNet.log.Info("初始化OCR类");
                eng = new Tesseract.TesseractEngine("./tessdata", "eng", Tesseract.EngineMode.TesseractAndCube);
            }
            catch (Exception ex)
            {
                eng = null;
                LogNet.log.Error("OCR", ex);
            }
        }

        public string GetString(System.Drawing.Bitmap bmp)
        {
            try
            {
                if (eng == null)
                {
                    LogNet.log.Warn("eng is null");
                    return "";
                }
                else
                {
                    Tesseract.Page page = eng.Process(bmp);
                    string s = page.GetText();
                    page.Dispose();
                    return s.Trim('\n');
                }
            }
            catch (Exception ex)
            {
                LogNet.log.Error("GetString", ex);
                return "";
            }
        }
    }
}