Example #1
0
        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");
        }
Example #2
0
        /// <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));
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }