黑马程序员技术交流社区
标题:
自编验证码功能的实现的主要代码
[打印本页]
作者:
0和1,编程世界
时间:
2013-9-21 15:58
标题:
自编验证码功能的实现的主要代码
//创建一个120*50的位图对象
Bitmap bmp = new Bitmap(120, 50);
//创建一个画图对象
Graphics g = Graphics.FromImage(bmp);
Random r = new Random();//创建随机数对象
//随机生成验证码
string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnokqrstuvwxyz0123456789";
string str = "";
for (int i = 0; i < 4; i++)
{
str += s[r.Next(0, s.Length)].ToString();
}
//颜色数组 随机
Color[] colors = { Color.Blue, Color.Red, Color.Black };
//字体数组
string[] fonts = { "微软雅黑", "宋体", "楷体", "黑体" };
//画验证码到bmp
for (int i = 0; i < 4; i++)
{
Point p = new Point(i * 30, 0);
// 要画的字符串 字体 字体大小 格式 颜色
g.DrawString(str[i].ToString(), new Font(fonts[r.Next(0, fonts.Length)], 25, FontStyle.Bold), new SolidBrush(colors[r.Next(0, colors.Length)]), p);
}
//画线
for (int i = 0; i < 30; 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(Brushes.DeepPink), p1, p2);//设置画笔颜色,两个点的坐标开始画线
}
//画像素
for (int i = 0; i < 200; i++)
{
bmp.SetPixel(r.Next(0, bmp.Width), r.Next(0, bmp.Height), Color.Black);
}
//把画的位图镶嵌到picbox上
pictureBox1.Image = bmp;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2