示例#1
0
 public static Image GetVcImage(string vcUrl, ref string code, ref CookieContainer vcCookie, string token = "")
 {
     //Image vcImage = null;
     Image vcImage = null;
     bool continueFlag=true;
     do
     {
         try
         {
             HttpClient client = new HttpClient(vcCookie);
             if (StaticValues.Proxy != "")
             {
                 client.Proxy = new WebProxy(StaticValues.Proxy);
             }
             Stream stream = client.GetImageStream(vcUrl);
             if (stream != null)
             {
                 vcImage = Image.FromStream(stream);
                 code = ImageRealize.GetCode0(vcImage);
                 bool ocrFlag=CheckVc(vcCookie, code, token);
                 code = ocrFlag ? code : "";
                 continueFlag = !ocrFlag && StaticValues.UserOcr;
                 //else
                 //{
                 //    break;
                 //}
                 //gif验证码
                 //FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);
                 //int count = gif.GetFrameCount(fd);
                 ////if (count == 6)
                 ////{
                 ////    gif.SelectActiveFrame(fd, 4);
                 ////    MemoryStream ms = new MemoryStream();
                 ////    gif.Save(ms, ImageFormat.Bmp);
                 ////    Image img1 = Image.FromStream(ms);
                 ////    picCommon.Image = img1;
                 ////}
                 //if (count == 1)
                 //{
                 //     code = ImageRealize.GetCode0(gif);
                 //     if (CheckVc(vcCookie, code, token))
                 //     {
                 //         break;
                 //     }
                 //}
                 //code = ImageRealize.GetCode(vcImage);
                 //if (CheckVc(vcCookie, code, token))
                 //{
                 //    break;
                 //}
             }
         }
         catch
         {
             break;
         }
     }
     while (continueFlag);
     return vcImage;
 }
        /// <summary>
        /// 获取验证码,并且识别
        /// </summary>
        /// <param name="yzmUrl"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public Image GetVcImage(string vcUrl,ref string code,ref CookieContainer vcCookie)
        {
            Image vcImage = null;
            HttpClient client = new HttpClient(vcCookie);
            //while (true)
            //{
                Stream stream = client.GetImageStream(vcUrl);
                vcImage = Image.FromStream(stream); 
                ImageRealize ir = new ImageRealize();
                //code = ir.GetCode(vcImage);
                //if (CheckVc(vcCookie, code))
                //{
                //    break;
                //}
                //byte[] m_buffer = new byte[4096];
                //int offset = 0;
                //int count = 0;
                //do
                //{
                //    count = stream.Read(m_buffer, offset, m_buffer.Length - offset);
                //    if (count > 0)
                //    {
                //        offset += count;
                //    }

                //}
                //while (count > 0);
                //if (offset > 0)
                //{
                //    StringBuilder codeBuilder = new StringBuilder(8, 8);
                //    byte[] ret = new byte[offset];
                //    Array.Copy(m_buffer, ret, offset);
                //    codeBuilder.Length = 0;
                //    if (ret.Length > 0)
                //    {
                //        if (GetCodeFromBuffer(1, ret, ret.Length, codeBuilder))
                //        {
                //            code = codeBuilder.ToString().ToUpper();
                //        }
                //        if (code.Length == 4)
                //        {
                //            code = code.Replace("V", "N").Replace("B", "8");
                //            if (CheckVc(vcCookie, code))
                //            {
                //                vcImage = Image.FromStream(new MemoryStream(ret, false));
                //                break;
                //            }
                //        }
                //    }

                //}
                stream.Close();
            //}
            return vcImage;
            
        }
 public static Image GetVcImage(string vcUrl, ref string code, ref CookieContainer vcCookie, string token = "")
 {
     //Image vcImage = null;
     Image vcImage = null;
     bool continueFlag=true;
     do
     {
         try
         {
             Stopwatch sw = new Stopwatch();
             sw.Start();
             HttpClient client = new HttpClient(vcCookie);
             if (StaticValues.Proxy != "")
             {
                 client.Proxy = new WebProxy(StaticValues.Proxy);
             }
             Stream stream = client.GetImageStream(vcUrl);
             sw.Stop();
             if (stream != null)
             {
                 vcImage = Image.FromStream(stream);
                 if (sw.ElapsedMilliseconds > 2000)
                 {
                     //continueFlag = false;
                 }
                 else
                 {
                     if (vcImage.Width == 78)
                     {
                         code = ImageRealize.GetCode0(vcImage);
                     }
                     else
                     {
                         code = ImageRealize.GetCode1(vcImage);
                     }
                     if (CheckVc(vcCookie, code, token))
                     {
                         break;
                     }
                     else
                         code = "";
                 }
                 //else
                 //{
                 //    break;
                 //}
                 //gif验证码
                 //FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);
                 //int count = gif.GetFrameCount(fd);
                 ////if (count == 6)
                 ////{
                 ////    gif.SelectActiveFrame(fd, 4);
                 ////    MemoryStream ms = new MemoryStream();
                 ////    gif.Save(ms, ImageFormat.Bmp);
                 ////    Image img1 = Image.FromStream(ms);
                 ////    picCommon.Image = img1;
                 ////}
                 //if (count == 1)
                 //{
                 //     code = ImageRealize.GetCode0(gif);
                 //     if (CheckVc(vcCookie, code, token))
                 //     {
                 //         break;
                 //     }
                 //}
                 //code = ImageRealize.GetCode(vcImage);
                 //if (CheckVc(vcCookie, code, token))
                 //{
                 //    break;
                 //}
             }
         }
         catch
         {
             break;
         }
     }
     while (continueFlag);
     return vcImage;
 }