zoukankan      html  css  js  c++  java
  • C# 创建验证码图片

    using System;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Web.UI.WebControls;
    
    public class ValidateCodeCreator
        {
            /// <summary>
            ///     产生验证码
            /// </summary>
            /// <param name="codeLength">验证码长度</param>
            /// <returns></returns>
            public string CreateCode(int codeLength)
            {
                string so =
                    "1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
                string[] strArr = so.Split(',');
                string code = "";
                Random rand = new Random();
                for (int i = 0; i < codeLength; i++)
                {
                    code += strArr[rand.Next(0, strArr.Length)];
                }
                return code;
            }
    
            /// <summary>
            ///     产生验证图片
            /// </summary>
            /// <param name="code"></param>
            public byte[] CreateCodeImage(string code)
            {
                Bitmap image = new Bitmap(50, 20);
                Graphics g = Graphics.FromImage(image);
                try
                {
                    WebColorConverter ww = new WebColorConverter();
                    g.Clear((Color) ww.ConvertFromString("#FAE264"));
                    Random random = new Random();
                    //画图片的背景噪音线
                    for (int i = 0; i < 12; i++)
                    {
                        int x1 = random.Next(image.Width);
                        int x2 = random.Next(image.Width);
                        int y1 = random.Next(image.Height);
                        int y2 = random.Next(image.Height);
                        g.DrawLine(new Pen(Color.LightGray), x1, y1, x2, y2);
                    }
                    Font font = new Font("Arial", 13, FontStyle.Bold | FontStyle.Italic);
                    LinearGradientBrush brush = new LinearGradientBrush(
                        new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Gray, 1.2f, true);
                    g.DrawString(code, font, brush, 0, 0);
                    //画图片的前景噪音点
                    //for (int i = 0; i < 10; i++)
                    //{
                    //    int x = random.Next(image.Width);
                    //    int y = random.Next(image.Height);
                    //    image.SetPixel(x, y, Color.White);
                    //}
                    //画图片的边框线
                    // g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
                    MemoryStream ms = new MemoryStream();
                    image.Save(ms, ImageFormat.Gif);
                    return ms.ToArray();
                }
                finally
                {
                    g.Dispose();
                    image.Dispose();
                }
            }
        }
    

      

  • 相关阅读:
    Dapr微服务应用开发系列1:环境配置
    酷炫的终端模拟器eDEX-UI
    man 命令显示简体中文帮助
    通过二维码传输文件到linux
    awk命令使用实例
    Centos安装vncserver虚拟网络控制台
    使用SSHFS文件系统远程挂载目录
    搜狗服务器引擎Sogou C++ Workflow开源啦!
    网站服务器系统,选windows还是linux?
    TikTok总部将留在美国 字节跳动保有控制权和核心算法
  • 原文地址:https://www.cnblogs.com/lc-ant/p/4835578.html
Copyright © 2011-2022 走看看