确实有很多的识别技术,我也要加强。我现在的程式只能够识别简单的数字,难点的就不能够咯。所以还要多学习,加油! 实现步骤, public string getValidCode() { string s = "NO"; //验证码地址 string ValidateCodeUrl = "http://www.m-photos.cn/Inc/ChkCode/validatecode.asp";/ HttpWebResponse resp; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.CreateDefault(new Uri(ValidateCodeUrl)); req.CookieContainer = ck; req.Timeout = 150000;//毫秒 resp = (HttpWebResponse)req.GetResponse(); //得到验证码图片 Bitmap bitmap = new System.Drawing.Bitmap(resp.GetResponseStream()); if (bitmap == null) { // return; } //分析得到验证码 int[] Key = GetKey(bitmap); bitmap.Clone(); bitmap.Dispose(); string ValidCode = ""; for (int i = 0; i < Key.Length; i++) { ValidCode += Key[i].ToString(); } s = ValidCode;//"OK"; return s; } 当然主要的代码在GetKey(bitmap)该函数就是读取读取返回验证码信息。请看代码: #region 分析图片 /// <summary> /// 图像切割 /// </summary> public int[] GetKey(Bitmap bitmap) { //宽度 int width = bitmap.Width; //高度 int height = bitmap.Height; //图像转化为黑白 bitmap = ConvertToGrayscale(bitmap); int[,] xArray = new int[4, 2];//4个验证码起始x坐标 int[,] yArray = new int[4, 2];//4个验证码起始y坐标 //初始化验证码起始坐标 for (int i = 0; i < 4; i++) { for (int j = 0; j < 2; j++) { xArray[i, j] = 0; yArray[i, j] = 0; } } int isStart = 0;//是否开始 int lieHei = 0;//是否有黑点 int lieBai = 0;//是否有白点 int nX = 0;//第n个验证码,X方向看 int[,] PicBlackPixelY = new int[4, height];//4个验证码黑点像素点集合Y坐标 StringBuilder sb = new StringBuilder();//图片全部黑点坐标临时存储 for (int X = 0; X < width; X++) //x坐标 {