简易动态验证码生成

来源:互联网 发布:用友软件怎么用 编辑:程序博客网 时间:2024/06/05 15:03

许多登陆界面有输入动态验证码,所以学习了下怎么写。

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 啊士大夫{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void pictureBox1_Click(object sender, EventArgs e)        {            Random r = new Random();//生成随机数            string str = null;//将数字以字符串的形式展现            for (int i = 0; i < 5; i++)            {                int temp = r.Next(0, 10);//逐个生成                str += temp;            }            Bitmap bmp = new Bitmap(120, 50);//生成一个图片            Graphics g = Graphics.FromImage(bmp);//生成一个画笔            Color[] colors = {Color.Chocolate,Color.DarkOrchid,Color.FloralWhite,Color.Green,Color.LightCyan};            for (int i = 0; i < 5; i++)//因为位置坐标随机,所以一个字符一个字符的画            {                Point p = new Point(i*15,r.Next(0,5));                string[]  fonts = {"微软雅黑","黑体","小篆","宋体","仿宋"};                g.DrawString(str[i].ToString(), new Font(fonts[r.Next(0, 5)], 20), new SolidBrush(colors[r.Next(0, 5)]), p);            }            for (int i = 0; i < 40; i++)//画一些线段            {                Point p1 = new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));                Point p2 = new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));                g.DrawLine(new Pen(new SolidBrush(colors[r.Next(0, 5)])),p1,p2);            }            for (int i = 0; i < 40; i++)//画一些像素颗粒            {                Point p = new Point(r.Next(0, bmp.Width), r.Next(0, bmp.Height));                bmp.SetPixel(p.X, p.Y, Color.LightBlue);            }            pictureBox1.Image = bmp;//将图片和控件绑定        }    }}

0 0
原创粉丝点击