命名空间:
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Web;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.HtmlControls;
private
void
Page_Load(
object
sender, System.EventArgs e)
{ // 在此处放置用户代码以初始化页面 string checkCode = CreateRandomCode( 4 ); Session[ " CheckCode " ] = checkCode; CreateImage(checkCode); }
private
string
CreateRandomCode(
int
codeCount)
{ // 函数功能:产生数字和字符混合的随机字符串 string allChar = " 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z " ; string [] allCharArray = allChar.Split( ' , ' ); string randomCode = "" ; int temp = - 1 ; Random rand = new Random(); for ( int i = 0 ; i < codeCount; i ++ ) { if (temp != - 1 ) { rand = new Random(i * temp * (( int )DateTime.Now.Ticks)); } int t = rand.Next( 35 ); if (temp == t) { return CreateRandomCode(codeCount); } temp = t; randomCode += allCharArray[t]; } return randomCode; }
private
void
CreateImage(
string
checkCode)
{ // 生成图象验证码函数 int iwidth = ( int )(checkCode.Length * 11.5 ); System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20 ); Graphics g = Graphics.FromImage(image); Font f = new System.Drawing.Font( " Arial " , 10 , System.Drawing.FontStyle.Bold); Brush b = new System.Drawing.SolidBrush(Color.Azure); // 字母白色 // g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height); g.Clear(Color.Gray); // 背景灰色 g.DrawString(checkCode, f, b, 3 , 3 ); Pen blackPen = new Pen(Color.Black, 0 ); Random rand = new Random(); System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg); Response.ClearContent(); Response.ContentType = " image/Jpeg " ; Response.BinaryWrite(ms.ToArray()); g.Dispose(); image.Dispose(); }
转载于:https://www.cnblogs.com/xzlang/archive/2006/10/02/520361.html