通过这个小程序我们来熟悉一下简单的GDI绘制和理解一下常见的验证码绘制原理,欢迎大家批评指正。大概的思路就是在一个bitmap对象上随机产生一个由不同字体不同颜色不同字符组成的的验证码,然后在绘制一些干扰的线条和点。我们先看一下程序的运行效果,如图:
具体实现步骤如下:
打开visual studio 新建一个winform应用程序,在设计器中添加三个控件picturebox button textbox
- PictureBox 用来显示验证码的,并添加click事件,鼠标每点击一下更换一个验证码
- button 用来验证文本框中输入的验证码是否正确
- Textbox 用来输入验证码
在picturebox的click事件中生成验证码
绘制验证码
- 先创建一个bitmap对象和一个GDI对象
int bmpWidth = 300, bmpHeight = 60;
Bitmap bmp = new Bitmap(bmpWidth, bmpHeight);
Point pt = new Point(0, 20);
Graphics gp = Graphics.FromImage(bmp);//创建GDI对象
2.将bitmap对象赋值给picturebox的image
3.定义三个数组
font数组用来保存几个字体,可根据当前计算机的字体安装情况来自定义
color数组用来保存几种颜色
char数组 我这里是用来演示的,所以只选用了几个汉字,实际开发当中可以随意
string[] font = { "微软雅黑