• 验证码功能实现


    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 VerifyCode : System.Web.UI.Page
    {
        private int codeLen = 4;//随机显示字符个数
        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.Jpeg);
        }

     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));//在指定区域绘制文本字符
        }
    }
                }
            }
        }

  • 相关阅读:
    Prometheus对标签的处理
    Promethueus常用函数
    jenkins容器化docker-compose
    k8s常用命令
    k8s网络笔记
    动态更新已经存在配置
    prometheus远程写调优参数说明
    IndiaHacks 2016
    Codeforces Round #344 (Div. 2) Messager KMP的应用
    HDU1711 KMP的应用
  • 原文地址:https://www.cnblogs.com/Carri/p/6598632.html
Copyright © 2020-2023  润新知