using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Web; namespace CrawRobot.Class { public class GetNumbers { // 数字识别 public static string Numbers(string Base64Pic) { string token = GetTokenHelper.getAccessToken(); string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/numbers?access_token=" + token; Encoding encoding = Encoding.Default; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host); request.Method = "post"; request.KeepAlive = true; // 图片的base64编码 string base64 = Base64Pic.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", ""); String str = "image=" + HttpUtility.UrlEncode(base64); byte[] buffer = encoding.GetBytes(str); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default); string result = reader.ReadToEnd(); JObject jo = null; var joResult = ""; jo = (JObject)JsonConvert.DeserializeObject(result); if (jo["words_result_num"].ToString() != "0") { joResult = jo["words_result"][0]["words"].ToString(); } return joResult; } // 通用文字识别 public static string GeneralBasic(string fileName) { try { string token = GetTokenHelper.getAccessToken(); //string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=" + token; string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + token; Encoding encoding = Encoding.Default; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host); request.Method = "post"; request.KeepAlive = true; // 图片的base64编码 string base64 = fileName.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", ""); string str = "image=" + HttpUtility.UrlEncode(base64); byte[] buffer = encoding.GetBytes(str); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string result = reader.ReadToEnd(); //LogHelper.Info("系统识别成功!\r\n" + result); return result; } catch (Exception e) { //LogHelper.Error(e.ToString() + "\r\n" + e.Message.ToString()); return "Exception"; } } public static string GetCheckInfo(int iLeft, int iTop, int iWidth, int iHeight) { //int iWidth = 596; //int iHeight = 58; Bitmap myImage = new Bitmap(iWidth, iHeight); Graphics gla = Graphics.FromImage(myImage); gla.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; gla.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; gla.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; gla.CopyFromScreen(iLeft, iTop, 0, 0, new Size(iWidth, iHeight)); myImage.Save(System.AppDomain.CurrentDomain.BaseDirectory + "/ZFYZ.png"); //字面是对当前图片进行了二进制转换 MemoryStream ms = new MemoryStream(); myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] arr = new byte[ms.Length]; ms.Position = 0; ms.Read(arr, 0, (int)ms.Length); ms.Close(); string Base64Pic = Convert.ToBase64String(arr); return Base64Pic; } public static string getFileBase64(String fileName) { FileStream filestream = new FileStream(fileName, FileMode.Open); byte[] arr = new byte[filestream.Length]; filestream.Read(arr, 0, (int)filestream.Length); string baser64 = Convert.ToBase64String(arr); filestream.Close(); return baser64; } } }