星空网 > 软件开发 > ASP.net

Winform之GDI绘制验证码

主要功能:点击验证码可更换,输入验证码进行登陆

 

需要导入命名空间System.Drawing;

产生五位的随机字符串:

1        Random random = new Random();2       //产生5个随机字符串3       str = null;4       for (int i = 0; i < 5; i++)5       {6         int j = random.Next(64, 90);7         str = str + (char)j;8       }

画字符串

 1       //创建图片 2       Bitmap bmp = new Bitmap(120,30); 3       //创建GDI对象 4       Graphics g = Graphics.FromImage(bmp); 5       //循环画字符串 6       for (int i = 0; i < str.Length; i++) 7       { 8         Point p = new Point(i*20,0); 9         //随机字体10         string[] fonts = { "宋体", "黑体", "微软雅黑", "隶属", "仿宋", };11         //随机颜色12         Color[] colors = { Color.Red, Color.Aquamarine, Color.Blue, Color.Yellow, Color.YellowGreen };13         //画字符串14         g.DrawString(str[i].ToString(), new Font(fonts[random.Next(0, fonts.Length)], 20, FontStyle.Bold), new SolidBrush(colors[random.Next(0, colors.Length)]), p);15       }        

到这里效果如下:

Winform之GDI绘制验证码

这时候我们在加入一些线条:

1        for (int i = 0; i < 20; i++)2       {3         Point p1 = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));4         Point p2 = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));5         g.DrawLine(new Pen(Color.Green), p1, p2);6       }

Winform之GDI绘制验证码

在画一些像素点:

1      //画像素点2       for (int i = 0; i < 500; i++)3       {4         Point p = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));5         bmp.SetPixel(p.X, p.Y, Color.Black);6       }        

Winform之GDI绘制验证码

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流