public void Test() { //去配置文档读取配置 BaiduConfig baiduConfig = new BaiduConfig() { ApiKey = "GFGZBfK9NzXe7DxZKl9A2Mb3", SecretKey = "qmsRizCCGVr6iiaBqITZuMrjLF3tYhMk" }; var token = AccessToken.getAccessToken(baiduConfig); var advancedGeneralResult = AdvancedGeneral.advancedGeneral(token.access_token, "f:\\files\\hcp.png"); }
/// <summary> /// 获取 baidu api token /// </summary> /// <param name="config">百度云中开通对应服务应用的配置</param> /// <returns></returns> public static AccessTokenResult getAccessToken(BaiduConfig config) { String authHost = "https://aip.baidubce.com/oauth/2.0/token"; HttpClient client = new HttpClient(); List <KeyValuePair <String, String> > paraList = new List <KeyValuePair <string, string> >(); paraList.Add(new KeyValuePair <string, string>("grant_type", "client_credentials")); paraList.Add(new KeyValuePair <string, string>("client_id", config.ApiKey)); paraList.Add(new KeyValuePair <string, string>("client_secret", config.SecretKey)); HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result; String result = response.Content.ReadAsStringAsync().Result; return(JsonConvert.DeserializeObject <AccessTokenResult>(result)); }
public void Test() { //去配置文档读取配置 BaiduConfig baiduConfig = new BaiduConfig() { AppId = "17009825", ApiKey = "HmWuhVwnDaIQ0OWC4mEs24RG", SecretKey = "cZc6TeGQL2eGgpkpgKtmacbQC1WUtLOZ" }; string filePath = @"f:\files\verificationCode_keyword.png"; var client = new Ocr(baiduConfig.ApiKey, baiduConfig.SecretKey); client.Timeout = 60000; var image = File.ReadAllBytes(filePath); var options = new Dictionary <string, object> { { "language_type", "CHN_ENG" }, { "detect_direction", "true" }, { "detect_language", "true" }, { "probability", "true" } }; // 调用通用文字识别, 图片参数为本地图片,可能会抛出网络等异常,请使用try/catch捕获 var result = client.GeneralBasic(image, options); Console.WriteLine(result); var url = "https://ai.bdstatic.com/file/03D0F32FE36C4E3A893D1AD60E797F5B"; // 调用通用文字识别, 图片参数为远程url图片,可能会抛出网络等异常,请使用try/catch捕获 var result2 = client.GeneralBasicUrl(url); Console.WriteLine(result2); // 如果有可选参数 var options2 = new Dictionary <string, object> { { "language_type", "CHN_ENG" }, { "detect_direction", "true" }, { "detect_language", "true" }, { "probability", "true" } }; // 带参数调用通用文字识别, 图片参数为远程url图片 result2 = client.GeneralBasicUrl(url, options2); Console.WriteLine(result2); }
public override void OnClick() { var url = "http://shangetu{s}.map.bdimg.com/it/u=x={x};y={y};z={z};v=009;type=sate&fm=46"; var baiduconfig = new BaiduConfig("Baidu", url); var layerType = EnumBruTileLayer.InvertedTMS; var mxdoc = (IMxDocument)_application.Document; var map = mxdoc.FocusMap; var brutileLayer = new BruTileLayer(_application, baiduconfig, layerType) { Name = "Baidu Satellite", Visible = true }; var env = new EnvelopeClass(); env.XMin = 7728334; env.YMin = 1755189; env.XMax = 16173851; env.YMax = 7411992; brutileLayer.Extent = env; ((IMapLayers)map).InsertLayer(brutileLayer, true, 0); }
public override void OnClick() { var url = "http://online{s}.map.bdimg.com/tile/?qt=tile&styles=pl&x={x}&y={y}&z={z}"; var baiduconfig = new BaiduConfig("Baidu", url); var layerType = EnumBruTileLayer.InvertedTMS; var mxdoc = (IMxDocument)_application.Document; var map = mxdoc.FocusMap; var brutileLayer = new BruTileLayer(_application, baiduconfig, layerType) { Name = "Baidu Terrain", Visible = true }; var env = new EnvelopeClass(); env.XMin = 7728334; env.YMin = 1755189; env.XMax = 16173851; env.YMax = 7411992; brutileLayer.Extent = env; ((IMapLayers)map).InsertLayer(brutileLayer, true, 0); }
public string VerificationCodeKeyword() { BaiduConfig baiduTextConfig = ConfigUtil.LoadConfig <BaiduConfig>("appsettings.json", "BaiduTextConfig"); BaiduConfig baiduImageConfig = ConfigUtil.LoadConfig <BaiduConfig>("appsettings.json", "BaiduImageConfig"); _12306Config _12306Config = ConfigUtil.LoadConfig <_12306Config>("appsettings.json", "12306Config"); ImageUtil.CaptureImage(verificationCodeGrayScalePng, 120, 0, verificationCodeKeywordPng, 170, 28); #region 获取验证码关键字 var client = new Ocr(baiduTextConfig.ApiKey, baiduTextConfig.SecretKey); client.Timeout = 60000; var image = File.ReadAllBytes(verificationCodeGrayScalePng); var options = new Dictionary <string, object> { { "language_type", "CHN_ENG" }, { "detect_direction", "true" }, { "detect_language", "true" }, { "probability", "true" } }; // 调用通用文字识别, 图片参数为本地图片,可能会抛出网络等异常,请使用try/catch捕获 var keywordJObj = client.GeneralBasic(image, options); BaiduResult baiduResult = keywordJObj.ToObject <BaiduResult>(); Console.WriteLine(keywordJObj); string keyword = baiduResult.words_result.FirstOrDefault().words.TrimStart("请点击下图中所有的".ToArray()); #endregion #region 将验证码切成八个图片 ImageUtil.CaptureImage(verificationCodePng, 5, 40, verificationCodePng1, 67, 67); ImageUtil.CaptureImage(verificationCodePng, 76, 40, verificationCodePng2, 67, 67); ImageUtil.CaptureImage(verificationCodePng, 148, 40, verificationCodePng3, 67, 67); ImageUtil.CaptureImage(verificationCodePng, 224, 40, verificationCodePng4, 67, 67); ImageUtil.CaptureImage(verificationCodePng, 5, 115, verificationCodePng5, 67, 67); ImageUtil.CaptureImage(verificationCodePng, 76, 115, verificationCodePng6, 67, 67); ImageUtil.CaptureImage(verificationCodePng, 148, 115, verificationCodePng7, 67, 67); ImageUtil.CaptureImage(verificationCodePng, 224, 115, verificationCodePng8, 67, 67); #endregion var access_token = AccessToken.getAccessToken(baiduImageConfig); if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng1, keyword)) { Console.WriteLine($"图片1命中 {keyword}"); } if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng2, keyword)) { Console.WriteLine($"图片2命中 {keyword}"); } if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng3, keyword)) { Console.WriteLine($"图片3命中 {keyword}"); } if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng4, keyword)) { Console.WriteLine($"图片4命中 {keyword}"); } if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng5, keyword)) { Console.WriteLine($"图片5命中 {keyword}"); } if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng6, keyword)) { Console.WriteLine($"图片6命中 {keyword}"); } if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng6, keyword)) { Console.WriteLine($"图片7命中 {keyword}"); } if (AdvancedGeneral.advancedGeneral(access_token.access_token, verificationCodePng7, keyword)) { Console.WriteLine($"图片8命中 {keyword}"); } return(null); }