百度ai识别图片破解蚂蚁代理

1.把网页保存为图片
https://blog.csdn.net/tomy2426214836/article/details/90057168
2.切割图片

 /// <summary>
        /// 
        /// </summary>
        /// <param name="b"></param>
        /// <param name="StartX">x坐标</param>
        /// <param name="StartY">y坐标</param>
        /// <param name="iWidth">宽</param>
        /// <param name="iHeight">高</param>
        /// <returns></returns>

        public static Bitmap KiCut(Bitmap b, int StartX, int StartY, int iWidth, int iHeight)
        {
            if (b == null)
            {
                return null;
            }

            int w = b.Width;
            int h = b.Height;

            if (StartX >= w || StartY >= h)
            {
                return null;
            }

            if (StartX + iWidth > w)
            {
                iWidth = w - StartX;
            }

            if (StartY + iHeight > h)
            {
                iHeight = h - StartY;
            }

            try
            {
                Bitmap bmpOut = new Bitmap(iWidth, iHeight, PixelFormat.Format24bppRgb);

                Graphics g = Graphics.FromImage(bmpOut);
                g.DrawImage(b, new Rectangle(0, 0, iWidth, iHeight), new Rectangle(StartX, StartY, iWidth, iHeight), GraphicsUnit.Pixel);
                g.Dispose();

                return bmpOut;
            }
            catch
            {
                return null;
            }
        }

3.处理图片
https://blog.csdn.net/tomy2426214836/article/details/89763461
4.识别图片

  static List<string> GetResult(string imagePath)
        {
            List<string> list = new List<string>();
            string wordsip = string.Empty;
            string wordsport = string.Empty;
            System.IO.FileStream fs = new System.IO.FileStream(imagePath, FileMode.Open, FileAccess.Read);
            int byteLength = (int)fs.Length;
            byte[] fileBytes = new byte[byteLength];
            fs.Read(fileBytes, 0, byteLength);
            //文件流关閉,文件解除锁定
            fs.Close();
            Image img1 = Image.FromStream(new MemoryStream(fileBytes));
            Bitmap img = new Bitmap(img1);
            Bitmap bitmap = removeLine(img);
            Bitmap imgnew = new Bitmap(bitmap.Width, bitmap.Height, PixelFormat.Format32bppArgb);//获得验证码图片 
            Graphics g = Graphics.FromImage(imgnew);
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            g.Clear(Color.White);
            g.DrawImage(bitmap, 0, 0);
            imgnew.Save(imagePath);
            // 如果有可选参数
            var options = new Dictionary<string, object>{
        {"detect_direction", "true"},
        {"probability", "true"}
    };    // 带参数调用通用文字识别(高精度版)
            var bs = File.ReadAllBytes(imagePath);
            Thread.Sleep(1000);
            var result = client.AccurateBasic(bs, options);
            var words = result["words_result"];
            if (words == null) return list;

            Regex regip = new Regex("((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))");
            Regex regport = new Regex("^[1-9]$|(^[1-9][0-9]$)|(^[1-9][0-9][0-9]$)|(^[1-9][0-9][0-9][0-9]$)|(^[1-6][0-5][0-5][0-3][0-5]$)");
            for (int i = 0; i < words.Count(); i++)
            {
                if (i < words.Count() - 1)
                {
                    wordsip = words[i]["words"].ToString();
                    wordsport = words[i + 1]["words"].ToString();
                    if (regip.IsMatch(wordsip) && regport.IsMatch(wordsport))
                    {
                        list.Add(wordsip + "','" + wordsport);
                        i++;

                    }
                }
            }
            return list;
        }

4.效果图
4.1
在这里插入图片描述
4.2
在这里插入图片描述
4.3
在这里插入图片描述

发布了54 篇原创文章 · 获赞 40 · 访问量 241万+

猜你喜欢

转载自blog.csdn.net/tomy2426214836/article/details/90057355