asp.net实现图片验证码的中国际

2012 年 10 月 27 日5220

欢迎进入.NET社区论坛,与300万技术人员互动交流 >>进入

asp.net实现图片验证码中国际,以下是后台文件,生成效果图可见代码后面图片,代码如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.IO;

namespace MyCompany.Web

{

/// <summary>

/// 验证码图片生成

/// </summary>

public class ValidateNum : System.Web.UI.Page

{

private void Page_Load(object sender, System.EventArgs e)

{

//生成随机生成器

Random random=new Random();

string validateNum = “”;

string s = “0123456789”;

for (int i = 0; i < 4; i++)

{

validateNum += s[random.Next(s.Length)];

}

HttpContext.Current.Session[“validateNum”] = validateNum;

// 在此处放置用户代码以初始化页面

Bitmap image = new Bitmap((int)Math.Ceiling(validateNum.Length * 12.5), 22);

Graphics g = Graphics.FromImage(image);

try

{

//清空图片背景色

g.Clear(Color.White);

Font font = new Font(“Arial”, 12, (FontStyle.Bold|FontStyle.Italic));

LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.OrangeRed, Color.OrangeRed, 1.2f, true);

g.DrawString(validateNum, font, brush, random.Next(1) + 1, random.Next(1) + 1);

//画图片的边框线

g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);

//保存图片数据

MemoryStream stream = new MemoryStream();

image.Save(stream, ImageFormat.Jpeg);

//输出图片

Response.Clear();

Response.ContentType=“image/jpeg”;

Response.BinaryWrite(stream.ToArray());

}

finally

{

g.Dispose();

image.Dispose();

}

}

#region Web 窗体设计器生成的代码

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。

//

InitializeComponent();

base.OnInit(e);

}

/// <summary>

/// 设计器支持所需的方法 - 不要使用代码编辑器修改

/// 此方法的内容。

/// </summary>

private void InitializeComponent()

{

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

}

}

【责编:ivy】

0 0