private int SubStractPage()
{
Image image = CaptureScreen(976, 766, 0, 0, size2);
image.Save(@"C:\ImageTests\screen.jpg", ImageFormat.Jpeg);
using (Tesseract tesseract = new Tesseract(@"C:\langs", "eng", OcrEngineMode.TesseractLstmCombined))
{
tesseract.SetImage(new Image<Bgr, byte>(@"C:\ImageTests\screen.jpg"));
tesseract.Recognize();
string pages = tesseract.GetUTF8Text().Replace(" ", "");
if( pages.Length == 1 || pages.Length == 0)
{
MessageBox.Show(pages);
return 0;
}
else
{
if (pages.Length < 10)
{
MessageBox.Show(pages);
return Convert.ToInt32(pages[pages.Length - 1].ToString()) - 1;
}
else
{
MessageBox.Show(pages);
return Convert.ToInt32((pages[pages.Length - 2].ToString() + pages[pages.Length - 1].ToString())) - 1;
}
}
}
}
该方法获取屏幕截图,然后成功从 tesseract 变量的屏幕截图中检索文本。然后我只是在页面中输入没有空格的数字。然后我返回页码最后一位数字或页码最后两位数字的值。但最终,即使页面在返回之前不为 null,也会变为 Null 并引发错误。这和什么有关系呢?