zoukankan      html  css  js  c++  java
  • C#,GDI绘制验证码!

     1         /// <summary>
     2         /// 单击更换验证码
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void pictureBox1_Click(object sender, EventArgs e)
     7         {
     8             //1,生产随机对象Random,生成随机数和验证码
     9             Random r = new Random();
    10             //随机产生验证码字符
    11             string str = null;
    12             for (int i = 0; i < 5; i++)
    13             {
    14                 str += r.Next(0, 10).ToString();
    15             }
    16             //MessageBox.Show(str);
    17 
    18             //创建GDI对象
    19             Bitmap bmp = new Bitmap(120, 40); //创建位图
    20             Graphics g = Graphics.FromImage(bmp);   //创建GDI
    21             //颜色
    22             Color[] cs = { Color.Red, Color.Blue, Color.Black, Color.BlueViolet, Color.Green, Color.DarkRed };
    23 
    24             //绘制验证码文本字符串
    25             for (int i = 0; i < 5; i++)
    26             {
    27                 //绘制字体
    28                 string[] typeface = { "微软雅黑", "黑体", "宋体", "仿宋", "隶书", "楷书" };
    29                 Font font = new Font(typeface[r.Next(0, 6)], 20, FontStyle.Bold);
    30                 //颜色
    31                 //Color[] cs = { Color.Red, Color.Blue,Color.LightGray,Color.Gray,Color.Green,Color.GhostWhite };
    32                 g.DrawString(str[i].ToString(), font, new SolidBrush(cs[r.Next(0, 6)]), new Point(i * 20, 0));
    33             }
    34 
    35             //绘制干扰线 ,画直线
    36             for (int i = 0; i < 30; i++)
    37             {
    38 
    39                 Pen pen = new Pen(cs[r.Next(0, 3)], 1);//画笔
    40                 Point p1 = new Point(r.Next(0, bmp.Width), r.Next(0, bmp.Height));
    41                 Point p2 = new Point(r.Next(0, bmp.Width), r.Next(0, bmp.Height));
    42                 g.DrawLine(pen, p1, p2);
    43 
    44             }
    45 
    46             //设置像素点颜色
    47             for (int i = 0; i < 500; i++)
    48             {
    49                 bmp.SetPixel(r.Next(0, bmp.Width), r.Next(0, bmp.Height),Color.Black);
    50             }
    51 
    52             //将绘制图片嵌入pictureBox中
    53             pictureBox1.Image = bmp;
    54 
    55 
    56         }

  • 相关阅读:
    今年要读的书
    java多线程
    json-lib 使用教程
    tomcat原理
    静态long类型常量serialVersionUID的作用
    使用junit4测试Spring
    MySQL各版本的区别
    spring mvc 下载安装
    hibernate、struts、spring mvc的作用
    【面试】hibernate n+1问题
  • 原文地址:https://www.cnblogs.com/momj/p/14376788.html
Copyright © 2011-2022 走看看