现在可以绘制验证码了,这里会用到.net的GDI+,我看了很多朋友写的验证码,一般都绘制了很多干扰点和干扰线,目的是为了使验证码不容易被电脑,个人觉得把绘制字的时候用材质刷绘制应该也能达到目的,所以找了一幅水彩画的材质。

用这个做字的材质也应该不太容易别识别吧,开始写绘图的代码,在UserController里新建名为VerificationCode的Action,代码如下:
/// <summary>
/// 绘制验证码
/// </summary>
/// <returns></returns>
public ActionResult VerificationCode()
{
int _verificationLength = 6;
int _width = 100, _height = 20;
SizeF _verificationTextSize;
Bitmap _bitmap = new Bitmap(Server.MapPath("~/Skins/Common/Texture.jpg"),true);
TextureBrush _brush = new TextureBrush(_bitmap);
//获取验证码
string _verificationText = Common.Text.VerificationText(_verificationLength);
//存储验证码
Session["VerificationCode"] = _verificationText.ToUpper();
Font _font = new Font("Arial", 14, FontStyle.Bold);
Bitmap _image = new Bitmap(_width, _height);
Graphics _g = Graphics.FromImage(_image);
//清空背景色
_g.Clear(Color.White);
//绘制验证码
_verificationTextSize = _g.MeasureString(_verificationText, _font);
_g.DrawString(_verificationText,_font,_brush,(_width-_verificationTextSize.Width)/2,(_height-_verificationTextSize.Height)/2);
_image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
return null;
}
打开浏览器看下效果
还不错。到此准备工作完成。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。








