如何生成验证码图片,并且不刷新页面就可换图片
2008-09-04 15:17
447 查看
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Response.BufferOutput = true; //缓冲输出
Response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.AppendHeader("Pragma", "No-Cache");
string key=CreateValidateKey(5);//生成验证码,参数为验证码长度
Session["ValiDateKey"]=key;//验证码保存到Session,以便调用页面效验
CreateValidateImage(key);//生成并输出验证码图像
}
private string CreateValidateKey(int keyLength)
{
System.Text.StringBuilder sb=new System.Text.StringBuilder();
string key="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZz";
char[] keyBase=key.ToCharArray();
Random rnd=new Random();
for(int i=0;i<keyLength;i++)
{
sb.Append(keyBase[rnd.Next(0,keyBase.Length)]);
}
return sb.ToString();
}
private void CreateValidateImage(string key)
{
Bitmap validateImg=new Bitmap(key.Length*14,24,PixelFormat.Format24bppRgb);//宽60,高30,24位RGB颜色
Graphics g=Graphics.FromImage(validateImg);//绘图对象
Font f=new Font("Arial",12,FontStyle.Bold);
g.Clear(Color.DarkSalmon);//填充背景色
g.DrawString(key,f,Brushes.White,new PointF(0,2));//将字写到画板
//可在此再添加干扰线条的代码
g.Save();
MemoryStream m=new MemoryStream();
validateImg.Save(m,ImageFormat.Gif);//输出内存流
Response.ClearContent();//清除所有内容
Response.ContentType="image/bmp";//输出类型位图像
Response.BinaryWrite(m.ToArray());
Response.End();
}
调用页面只将图片源指向为该页面即可
{
// 在此处放置用户代码以初始化页面
Response.BufferOutput = true; //缓冲输出
Response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.AppendHeader("Pragma", "No-Cache");
string key=CreateValidateKey(5);//生成验证码,参数为验证码长度
Session["ValiDateKey"]=key;//验证码保存到Session,以便调用页面效验
CreateValidateImage(key);//生成并输出验证码图像
}
private string CreateValidateKey(int keyLength)
{
System.Text.StringBuilder sb=new System.Text.StringBuilder();
string key="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZz";
char[] keyBase=key.ToCharArray();
Random rnd=new Random();
for(int i=0;i<keyLength;i++)
{
sb.Append(keyBase[rnd.Next(0,keyBase.Length)]);
}
return sb.ToString();
}
private void CreateValidateImage(string key)
{
Bitmap validateImg=new Bitmap(key.Length*14,24,PixelFormat.Format24bppRgb);//宽60,高30,24位RGB颜色
Graphics g=Graphics.FromImage(validateImg);//绘图对象
Font f=new Font("Arial",12,FontStyle.Bold);
g.Clear(Color.DarkSalmon);//填充背景色
g.DrawString(key,f,Brushes.White,new PointF(0,2));//将字写到画板
//可在此再添加干扰线条的代码
g.Save();
MemoryStream m=new MemoryStream();
validateImg.Save(m,ImageFormat.Gif);//输出内存流
Response.ClearContent();//清除所有内容
Response.ContentType="image/bmp";//输出类型位图像
Response.BinaryWrite(m.ToArray());
Response.End();
}
调用页面只将图片源指向为该页面即可
相关文章推荐
- J2EE如何生成验证码图片和点击刷新验证码
- J2EE如何生成验证码图片和点击刷新验证码
- J2EE如何生成验证码图片和点击刷新验证码
- J2EE验证码图片如何生成和点击刷新验证码
- Servlet生成验证码在JSP页面显示,单击验证码图片可刷新
- J2EE验证码图片如何生成和点击刷新验证码
- 如何传值在2个页面之间 要求不刷新父页面,并且不能用Querystring传值
- httphandler生成无刷新验证码图片
- 如何让页面在打开时自动刷新一次让图片全部显示
- ASP.NET ashx实现无刷新页面生成验证码
- 使用PS切片工具进行切片生成div布局的页面的方法以及如何确定图片中某个点在图片中的位置
- javaweb之response随机生成图片验证码加载到web页面中(本实例使用了禁止浏览器缓存头),并且单击使用javascript换图片
- php程序如何生成验证码图片
- 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值
- 结合php验证码图片生成实现点击刷新
- 如何让页面在打开时自动刷新一次让图片全部显示
- Jsp页面生成随机验证码图片
- 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值
- 生成用户登录页面中验证码图片的Servlet
- 如何传值在2个页面之间 要求不刷新父页面,并且不能用Querystring传值