ASP.NET随机生成验证码图片

原创 2012年03月28日 16:34:47

using System;
using System.Web;
using System.Drawing;
/// <summary>
/// 验证码生成
/// </summary>
public partial class util_VerifyCode : System.Web.UI.Page
{
    //验证码有效字符
    string codeSerial = "2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";
    /// <summary>
    /// 创建随机码字符串
    /// </summary>
    /// <param name="codeLen"></param>
    /// <returns></returns>
    private string CreateVerifyCode(int codeLen)
    {
        string[] arr = this.codeSerial.Split(',');

        string code = "";

        int randValue = -1;

        Random rand = new Random();

        for (int i = 0; i < codeLen; i++)
        {
            randValue = rand.Next(0, arr.Length - 1);

            code += arr[randValue];
        }
        return code;
    }
    /// <summary>
    /// 创建验证码图片
    /// </summary>
    /// <param name="code">随机码</param>
    /// <returns></returns>
    public Bitmap CreateImageCode(string code)
    {
        Color backgroundColor = Color.White;  //图片背景色
        int padding = 2;    //边框补(默认1像素)
        int fontSize = 10;  //字体大小
        string fontName = "Arial"   ;  //字体

        int fWidth = fontSize + padding;   //字体宽
        int imageWidth = (int)(code.Length * fWidth) + 4 + padding*2;   //图片宽度
        int imageHeight = fontSize * 2 + 2;                    //图片高度

        System.Drawing.Bitmap image = new System.Drawing.Bitmap(imageWidth, imageHeight);  //图片对象
        Graphics g = Graphics.FromImage(image);
        g.Clear(backgroundColor);  //刷底色


        int left = 1, top = 2;
        Font f=null;
        Brush b=null;

        //随机字体和颜色的验证码字符
        for (int i = 0; i < code.Length; i++)
        {
            f = new System.Drawing.Font(fontName, fontSize, System.Drawing.FontStyle.Bold);  //字体
            b = new System.Drawing.SolidBrush(Color.Black);  //黑色字体

            g.DrawString(code[i].ToString(), f, b, left, top);
            left += fWidth;
        }

        //画一个边框 边框颜色为Color.Gainsboro
        g.DrawRectangle(new Pen(Color.Gainsboro, 0), 0, 0, image.Width - 1, image.Height - 1);
        g.Dispose();

        return image;
    }
    /// <summary>
    /// 直接输出图形到页面
    /// </summary>
    /// <param name="code"></param>
    /// <param name="context"></param>
    private void CreateImageOnPage(string code, HttpContext context)
    {
        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        Bitmap image = this.CreateImageCode(code);
        image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

        context.Response.ClearContent();
        context.Response.ContentType = "image/Jpeg";
        context.Response.BinaryWrite(ms.GetBuffer());

        ms.Close();
        ms = null;
        image.Dispose();
        image = null;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string code=CreateVerifyCode(4);  //生成随机码
        Session[  "VerifyCode"  ] = code;   //随机码保存
        CreateImageOnPage(code, this.Context);  //生成图片
    }
}

ASP.Net随机生成验证码

//首先创建一个页面ValidateCodePage: //创建Random的实例 Random rand=new Random(); protected void Page_Load(obje...
  • bingxueer0702
  • bingxueer0702
  • 2013年01月24日 18:16
  • 1293

【java】图片验证码的随机生成

1.场景还原    最近在项目的前端工程中,有这样的需求:随机生成验证码,点击图片验证码也可以更换验证码,并且传输到后台验证。 效果UI图: 2.实现方案 1.前端界面布置代码...
  • zhangxing52077
  • zhangxing52077
  • 2017年05月15日 16:54
  • 493

Java如何随机生成图片验证码

首先使用一下代码 可生成 一张指定文理和字体的验证码package xxy.image; import java.awt.Color; import java.awt.Font; import jav...
  • aa8568849
  • aa8568849
  • 2017年02月22日 17:15
  • 348

使用Response输出随机图片(随机生成验证码)

源代码 CheckCodeServlet.javapackage blank.servlet;import java.io.IOException; import java.io.PrintWrit...
  • LeoLeoHan
  • LeoLeoHan
  • 2015年03月17日 21:53
  • 1373

生成随机图片验证码

项目中,生成随机图片验证码代码:先保存,后学习: package cn.digitalpublishing.servlet; import java.awt.Color; import java....
  • u012246342
  • u012246342
  • 2016年08月01日 11:24
  • 392

Servlet生成随机验证码图片

Servlet生成随机验证码图片(常用汉字验证)
  • lixueyu010101
  • lixueyu010101
  • 2016年01月05日 10:03
  • 431

漂亮的验证码(.Net MVC)


  • hzgang811856054
  • hzgang811856054
  • 2014年08月08日 03:48
  • 8403

web 动态随机验证码图片生成【最新】

随机图片校验码验证码生产包,用于生产动态图片校验码,验证码图片生成
  • Botaruibo
  • Botaruibo
  • 2016年10月18日 15:34
  • 386

生成图片带有随机码的验证码

页面端:   URP 综合教务系统 - 登录 /css/newcss/login.css" rel="stylesheet" type="text/css"> /css/newcss/pr...
  • RonaldoZH
  • RonaldoZH
  • 2015年09月10日 15:06
  • 1225

Java生成随机验证码图片并进行Base64编码

randomCode
  • danmo1993
  • danmo1993
  • 2017年08月03日 14:05
  • 703
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET随机生成验证码图片
举报原因:
原因补充:

(最多只允许输入30个字)