用GDI+画验证码

1、新建一个窗体应用程序,在上面拖一个pictureBox对象,为其添加单击事件

2、创建GDI对象、产生随机数画入图片中、画线条、最后将图片到pictureBox中,代码如下:

复制代码
 1  private void pictureBox1_Click(object sender, EventArgs e)
 2         {
 3             //创建GDI对象
 4             Bitmap bmp = new Bitmap(150,40);
 5             Graphics g = Graphics.FromImage(bmp);
 6 
 7            //产生随机数并画入图片中
 8             Random r = new Random();
 9             string str = "";
10             for (int i = 0; i < 5;i++ )
11             {
12                 str += r.Next(0,10);
13             }
14             for (int i = 0; i < 5; i++) 
15             {
16                 Point p = new Point(i*20,0);
17                 string[] fonts = { "微软雅黑", "宋体", "黑体", "隶书", "仿宋" };
18                 Color[] colors = { Color.Yellow,Color.Blue,Color.Black,Color.Red,Color.Pink};
19                 g.DrawString(str[i].ToString(),new Font(fonts[r.Next(0,5)],20,FontStyle.Bold),new SolidBrush(colors[r.Next(0,5)]),p);
20             
21             }
22 
23             //画线
24             for (int i = 0; i < 20; i++)
25             {
26                 Point p1 = new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
27                 Point p2 = new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
28                 g.DrawLine(new Pen(Brushes.Green),p1,p2);
29             }
30 
31             //将图片镶嵌到pictureBox中
32             pictureBox1.Image = bmp;
33 
34         }
复制代码

 

posted @   爱生活,爱代码  阅读(307)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示