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; }