zoukankan      html  css  js  c++  java
  • 生成图片验证码

     /// <summary>
            /// 图片验证码
            /// </summary>
            /// <returns></returns>
            public ActionResult ValidateCode()
            {
                byte[] data = null;
                string code = RandCode(5);
                TempData["code"] = code;
                //画板
                Bitmap imgCode = new Bitmap(80, 25);
                //画笔
                Graphics gp = Graphics.FromImage(imgCode);
                //背景为白色
                gp.FillRectangle(Brushes.White, 0, 0, imgCode.Width, imgCode.Height);
                gp.DrawString(code, new Font("宋体", 14), Brushes.Black, new PointF(10, 2));
                Random rand = new Random();
                //绘制燥线
                for (int i = 0; i < 5; i++)
                {
                    gp.DrawLine(new Pen(RandColor()), rand.Next(imgCode.Width), rand.Next(imgCode.Height), rand.Next(imgCode.Width), rand.Next(imgCode.Height));
                }
                //绘制噪点
                for (int i = 0; i < 50; i++)
                {
                    imgCode.SetPixel(rand.Next(imgCode.Width), rand.Next(imgCode.Height), RandColor());
                }
                gp.Dispose();
                MemoryStream ms = new MemoryStream();
                imgCode.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                data = ms.GetBuffer();
                return File(data, "image/jepg");
            }
            /// <summary>
            /// 生成随机数
            /// </summary>
            /// <param name="len"></param>
            /// <returns></returns>
            private string RandCode(int len)
            {
                StringBuilder sb = new StringBuilder();
                string words = "0987654321qwerghjzxcvb";
                Random random = new Random();
                for (int i = 0; i < len; i++)
                {
                    char ch = words[random.Next(0, words.Length)];
                    if (sb.ToString().Contains(ch))
                    {
                        i--;
                        continue;
                    }
                    sb.Append(ch + "");
                }
                return sb.ToString();
            }
    
            private Color RandColor()
            {
                Random random = new Random();
                int red = random.Next(10, 200);
                int green = random.Next(10, 200);
                int blue = random.Next(10, 200);
                return Color.FromArgb(red, green, blue);
            }
  • 相关阅读:
    hrbust 1788
    poj2299 ( bit )
    LA3027(并查集)
    hdu1166 (bit)
    hdu1598(并查集)
    cdoj1215 (并查集)
    hdu2643 ( 第二类斯特灵数 )
    hdu3625 ( 第一类斯特灵数 )
    Uva10066
    怎么处理sqlserver2017部署在winowsDocker上时区无法修改成功的方式,并且可以多创建新的容器调用简单的方式直接使用!
  • 原文地址:https://www.cnblogs.com/baixiaoguang/p/7094708.html
Copyright © 2011-2022 走看看