zoukankan      html  css  js  c++  java
  • ASP.NET纯数字验证码

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Drawing;
    using System.Drawing.Imaging;

    public partial class Rnd : System.Web.UI.Page
    {
        private int codeLen = 5;//随机显示字符个数
        private int fineness = 85;//图片清晰度
        private int imgWidth = 65;//图片宽度
        private int imgHeight = 20;//图片高度
        private string fontFamily = "Comic Sans MS";//字体名称
        private int fontSize = 12; //字体大小
        private Random random = new Random();
        
        protected void Page_Load(object sender, EventArgs e)
        {
            string validateCode = CreateValidateCode();
            Session["RandomNumber"] = validateCode;
            Bitmap bitmap = new Bitmap(imgWidth, imgHeight);
            DisturbBitmap(bitmap);
            DrawValidateCode(bitmap, validateCode);
            bitmap.Save(Response.OutputStream, ImageFormat.Gif);
        }
        private string CreateValidateCode()//得到随机数
        {
            string validateCode = "";
            for (int i = 0; i < codeLen; i++)
            {
                int n = random.Next(10);//返回一个小于最大值得随机数
                validateCode += n.ToString();
            }
            return validateCode;
        }
        private void DisturbBitmap(Bitmap bitmap)//获取背景图
        {
            for (int i = 0; i < bitmap.Width; i++)
            {
                for (int j = 0; j < bitmap.Height; j++)
                {
                    if (random.Next(90) <= this.fineness)
                    {
                        bitmap.SetPixel(i, j, Color.White);//获取指定位置的像素颜色
                    }
                }
            }
        }
        private void DrawValidateCode(Bitmap bitmap, string validateCode)
        {
            Graphics g = Graphics.FromImage(bitmap);
            Font font = new Font(fontFamily, fontSize, FontStyle.Bold);
            g.DrawString(validateCode, font, Brushes.Black, random.Next(-3, 11), random.Next(-4, 1));//在指定区域绘制文本字符
        }
    }
  • 相关阅读:
    《设备树 — 引入设备树,内核文件的位置变化(八)》
    《设备树 — 内核中设备树的操作函数(七)》
    《设备树 — 根文件系统中查看设备树(六)》
    《设备树 — platform_device和platform_driver如何让匹配(五)》
    《设备树 — device node到platform device的转换(四)》
    Ex 6_19 至多用k枚硬币兑换价格_第七次作业
    Ex 6_18 硬币有限的兑换问题_第七次作业
    Ex 6_17 数量无限的硬币兑换问题_第七次作业
    Ex 6_16 旧货销售问题_第七次作业
    Ex 6_21 最小点覆盖问题_第八次作业
  • 原文地址:https://www.cnblogs.com/lds85930/p/1507780.html
Copyright © 2011-2022 走看看