本文共 1284 字,大约阅读时间需要 4 分钟。
protected void FormCheck()
{// 验证码的生成Random rand = new Random();int len = rand.Next(4, 6);// 可选字符 char[] str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); // 创建字符串构建器 System.Text.StringBuilder code = new System.Text.StringBuilder(); // 随机生成验证码 for (int i = 0; i < len; i++) { code.Append(str[rand.Next(str.Length)]); } // 将验证码存放到会话中 this.Session["result"] = code.ToString(); // 获取验证码的大小 Size imageSize = new Size(); imageSize.Width = (int)(imageSize.Width + 6); imageSize.Height = (int)(imageSize.Height + 5); // 创建并生成验证码的图像 using (Bitmap bmp = new Bitmap(imageSize.Width, imageSize.Height)) { using (Graphics g = Graphics.FromImage(bmp)) { g.Clear(Color.White); g.DrawString(code.ToString(), myFont, Brushes.Black, new RectangleF(0, 0, imageSize.Width, imageSize.Height)); } } // 随机设置图片像素颜色 int x = rand.Next(imageSize.Width); int y = rand.Next(imageSize.Height); int r = rand.Next(255); int g = rand.Next(255); int b = rand.Next(255); Color c = Color.FromArgb(r, g, b); bmp.SetPixel(x, y, c); // 保存图片到流中并输出 using (MemoryStream ms = new MemoryStream()) { bmp.Save(ms, ImageFormat.Png); this.Response.ContentType = "image/png"; ms.WriteTo(this.Response.OutputStream); ms.Close(); } }
转载地址:http://ssdqz.baihongyu.com/