随机生成验证码

王朝学院·作者佚名  2016-08-27  
宽屏版  字体: |||超大  

usingSystem;usingSystem.Collections.Generic;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Drawing.Imaging;usingSystem.IO;usingSystem.Linq;namespaceLetter.Data.Command

{publicclassValidateCode

{///<summary>///创建验证码的图片///</summary>///<param name="validateCode">验证码</param>publicbyte[] CreateValidateGraphic(stringvalidateCode)

{

Bitmap image=newBitmap((int)Math.Ceiling(validateCode.Length *12.0),22);

Graphics g=Graphics.FromImage(image);try{//生成随机生成器Random random =newRandom();//清空图片背景色g.Clear(Color.White);//画图片的干扰线for(inti =0; i <25; i++)

{intx1 =random.Next(image.Width);intx2 =random.Next(image.Width);inty1 =random.Next(image.Height);inty2 =random.Next(image.Height);

g.DrawLine(newPen(Color.Silver), x1, y1, x2, y2);

}

Font font=newFont("Arial",12, (FontStyle.Bold |FontStyle.Italic));

LinearGradientBrush brush=newLinearGradientBrush(newRectangle(0,0, image.Width, image.Height),

Color.Blue, Color.DarkRed,1.2f,true);

g.DrawString(validateCode, font, brush,3,2);//画图片的前景干扰点for(inti =0; i <100; i++)

{intx =random.Next(image.Width);inty =random.Next(image.Height);

image.SetPixel(x, y, Color.FromArgb(random.Next()));

}//画图片的边框线g.DrawRectangle(newPen(Color.Silver),0,0, image.Width -1, image.Height -1);//保存图片数据MemoryStream stream =newMemoryStream();

image.Save(stream, ImageFormat.Jpeg);//输出图片流returnstream.ToArray();

}finally{

g.Dispose();

image.Dispose();

}

}///<summary>///生成数字随机码///</summary>///<param name="count">随机位数</param>///<returns></returns>publicstringCreateValidateCode(intcount)

{

Random r=newRandom();stringcode =string.Empty;for(inti =0; i < count; i++)

{

code+= r.Next(0,9)+"";

}returncode;

}

}

}

controller调用

///<summary>///获取验证码///</summary>///<returns></returns>publicActionResult GetValidateCode()

{

ValidateCode vCode=newValidateCode();stringcode = vCode.CreateValidateCode(4);session["ValidateCode"] =code;byte[] bytes =vCode.CreateValidateGraphic(code);returnFile(bytes,@"image/jpeg");

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有