QQ的验证码文字识别

来源:互联网 发布:腾讯视频软件下载 编辑:程序博客网 时间:2024/04/30 02:58

 

添加对应命名空间

using System.Drawing;
using System.Drawing.Imaging;
using System.Net;
using System.IO;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://ptlogin2.qq.com/getimage?aid=15000102&0.3881952033255094");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream requestStream = response.GetResponseStream();
            Bitmap sourceBm = new Bitmap(requestStream);
            //去色
            for (int i = 0; i < sourceBm.Width; i++)
            {
                for (int j = 0; j < sourceBm.Height; j++)
                {
                    Color c = sourceBm.GetPixel(i, j);
                    int l = (int)(c.R * 0.3 + c.G * 0.59 + c.B * 0.11);
                    sourceBm.SetPixel(i, j, Color.FromArgb(l, l, l));
                }
            }
            //去杂色
            for (int i = 0; i < sourceBm.Width; i++)
            {
                for (int j = 0; j < sourceBm.Height; j++)
                {
                    Color c = sourceBm.GetPixel(i, j);
                    if(c.R>=122)
                        sourceBm.SetPixel(i, j, Color.FromArgb(255, 255, 255));
                    else
                        sourceBm.SetPixel(i, j, Color.FromArgb(0, 0, 0));
                }
            }

            MemoryStream ms = new MemoryStream();
            sourceBm.Save(ms, ImageFormat.Gif);
            sourceBm.Dispose();
            requestStream.Dispose();
            Response.ClearContent();
            Response.ContentType = "image/gif";
            Response.BinaryWrite(ms.ToArray());
            ms.Dispose();
            Response.End();

在获取验证码文字的特征码时遇到问题,QQ的验证码文字都连在一起,程序无法自动获取文字的特征码。看来验证码使用连字这个方式极大的提高了自动识别的门槛。
图片地址:http://captcha.qq.com/getimage

原创粉丝点击