asp.net实现图片验证码的中国际
欢迎进入.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】