private void dataInit() { IOptChaRec ocr; string res = null; if (Common.appSettings.OCRsource == "TesseractOCR") { ocr = new TesseractOCR(); if (ocr.OCR_Init("", "") != false) { ocr.SetOCRSourceLang(Common.appSettings.GlobalOCRLang); ocr.SetImgFunc(Common.appSettings.OCR_PreprocessMethod, int.Parse(Common.appSettings.OCR_PreprocessParam), 0); res = ocr.OCRProcess(new System.Drawing.Bitmap(img)); if (res != null) { sourceText.Text = res; } else { HandyControl.Controls.Growl.ErrorGlobal($"TesseractOCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else { HandyControl.Controls.Growl.ErrorGlobal($"TesseractOCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else if (Common.appSettings.OCRsource == "TesseractOCR5") { ocr = new TesseractOCR5(); if (ocr.OCR_Init("", "") != false) { ocr.SetOCRSourceLang(Common.appSettings.GlobalOCRLang); ocr.SetImgFunc(Common.appSettings.OCR_PreprocessMethod, int.Parse(Common.appSettings.OCR_PreprocessParam), 0); res = ocr.OCRProcess(new System.Drawing.Bitmap(img)); if (res != null) { sourceText.Text = res; } else { HandyControl.Controls.Growl.ErrorGlobal($"TesseractOCR5 {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else { HandyControl.Controls.Growl.ErrorGlobal($"TesseractOCR5 {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else if (Common.appSettings.OCRsource == "BaiduOCR") { ocr = new BaiduGeneralOCR(); if (ocr.OCR_Init(Common.appSettings.BDOCR_APIKEY, Common.appSettings.BDOCR_SecretKey)) { ocr.SetOCRSourceLang(Common.appSettings.GlobalOCRLang); ocr.SetImgFunc(Common.appSettings.OCR_PreprocessMethod, int.Parse(Common.appSettings.OCR_PreprocessParam), 0); res = ocr.OCRProcess(new System.Drawing.Bitmap(img)); if (res != null) { sourceText.Text = res; } else { HandyControl.Controls.Growl.ErrorGlobal($"百度OCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else { HandyControl.Controls.Growl.ErrorGlobal($"百度OCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } if (res == null) { FirstTransText.Text = "OCR ERROR"; } else { ITranslator translator1 = TranslateWindow.TranslatorAuto(Common.appSettings.FirstTranslator); ITranslator translator2 = TranslateWindow.TranslatorAuto(Common.appSettings.SecondTranslator); //5.提交翻译 string transRes1 = ""; string transRes2 = ""; if (translator1 != null) { transRes1 = translator1.Translate(res, Common.UsingDstLang, Common.UsingSrcLang); } if (translator2 != null) { transRes2 = translator2.Translate(res, Common.UsingDstLang, Common.UsingSrcLang); } FirstTransText.Text = transRes1; SecondTransText.Text = transRes2; } }
private async void dataInit() { OCREngine ocr; string res = null; if (Common.appSettings.OCRsource == "TesseractOCR") { ocr = new TesseractOCR(); if (ocr.OCR_Init("", "") != false) { ocr.SetOCRSourceLang(Common.appSettings.GlobalOCRLang); res = await ocr.OCRProcessAsync(img); if (res != null) { sourceText.Text = res; } else { HandyControl.Controls.Growl.WarningGlobal($"TesseractOCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else { HandyControl.Controls.Growl.ErrorGlobal($"TesseractOCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else if (Common.appSettings.OCRsource == "Tesseract5") { ocr = new Tesseract5OCR(); if (ocr.OCR_Init(Common.appSettings.Tesseract5OCR_Path, Common.appSettings.Tesseract5OCR_Args)) { ocr.SetOCRSourceLang(Common.appSettings.GlobalOCRLang); res = await ocr.OCRProcessAsync(img); if (res != null) { sourceText.Text = res; } else { HandyControl.Controls.Growl.WarningGlobal($"Tesseract5 {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else { HandyControl.Controls.Growl.ErrorGlobal($"Tesseract5 {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else if (Common.appSettings.OCRsource == "BaiduOCR") { ocr = new BaiduGeneralOCR(); if (ocr.OCR_Init(Common.appSettings.BDOCR_APIKEY, Common.appSettings.BDOCR_SecretKey)) { ocr.SetOCRSourceLang(Common.appSettings.GlobalOCRLang); res = await ocr.OCRProcessAsync(img); if (res != null) { sourceText.Text = res; } else { HandyControl.Controls.Growl.WarningGlobal($"百度智能云OCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else { HandyControl.Controls.Growl.ErrorGlobal($"百度智能云OCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else if (Common.appSettings.OCRsource == "BaiduFanyiOCR") { ocr = new BaiduFanyiOCR(); if (ocr.OCR_Init(Common.appSettings.BDappID, Common.appSettings.BDsecretKey)) { ocr.SetOCRSourceLang(Common.appSettings.GlobalOCRLang); res = await ocr.OCRProcessAsync(img); if (res != null) { FirstTransText.Text = res; } else { HandyControl.Controls.Growl.WarningGlobal($"百度翻译OCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } else { HandyControl.Controls.Growl.ErrorGlobal($"百度翻译OCR {Application.Current.Resources["APITest_Error_Hint"]}\n{ocr.GetLastError()}"); } } if (res == null) { FirstTransText.Text = "OCR ERROR"; } else if (Common.appSettings.OCRsource != "BaiduFanyiOCR") { // 因为历史原因,OCR的源语言用的是三个字母的,如eng和jpn。而翻译的API即Common.UsingSrcLang用的两个字母,如en和jp string srclang; switch (Common.appSettings.GlobalOCRLang) { case "eng": srclang = "en"; break; case "jpn": srclang = "jp"; break; default: srclang = Common.appSettings.GlobalOCRLang; break; } if (!Common.appSettings.EachRowTrans) { if (srclang == "en") { res = res.Replace("\n", " ").Replace("\r", " "); } else { res = res.Replace("\n", "").Replace("\r", ""); } } ITranslator translator1 = TranslateWindow.TranslatorAuto(Common.appSettings.FirstTranslator); ITranslator translator2 = TranslateWindow.TranslatorAuto(Common.appSettings.SecondTranslator); //5.提交翻译 string transRes1 = ""; string transRes2 = ""; if (translator1 != null) { transRes1 = await translator1.TranslateAsync(res, Common.UsingDstLang, srclang); } if (translator2 != null) { transRes2 = await translator2.TranslateAsync(res, Common.UsingDstLang, srclang); } FirstTransText.Text = transRes1; SecondTransText.Text = transRes2; } }