生成随机验证图片--ASP.NET中常用代码之二
生成随机验证图片(转载)
使用方法:
1/**////调用函数将验证码生成图片
2 this.CreateCheckCodeImage(GenerateCheckCode());
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1/**//// <summary>
2 /// 产生五位的随机字符串
3 /// </summary>
4 /// <returns></returns>
5 private string GenerateCheckCode()
6 {
7 int number;
8 char code;
9 string checkCode = String.Empty;
10
11 System.Random random = new Random();
12
13 for (int i = 0; i < 5; i++)
14 {
15 number = random.Next();
16
17 if (number % 2 == 0)
18 code = (char)('0' + (char)(number % 10));
19 else
20 code = (char)('A' + (char)(number % 26));
21
22 checkCode += code.ToString();
23 }
24
25 /**////用于客户端校验码比较
26 Session["CheckCode"] = checkCode;
27
28 return checkCode;
29 }
30
31 /**//// <summary>
32 /// 将验证码生成图片显示
33 /// </summary>
34 /// <param name="checkCode"></param>
35 private void CreateCheckCodeImage(string checkCode)
36 {
37 if (checkCode == null || checkCode.Trim() == String.Empty)
38 return;
39
40 System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
41 Graphics g = Graphics.FromImage(image);
42
43 try
44 {
45 /**////生成随机生成器
46 Random random = new Random();
47
48 /**////清空图片背景色
49 g.Clear(Color.White);
50
51 /**////画图片的背景噪音线
52 for (int i = 0; i < 25; i++)
53 {
54 int x1 = random.Next(image.Width);
55 int x2 = random.Next(image.Width);
56 int y1 = random.Next(image.Height);
57 int y2 = random.Next(image.Height);
58
59 g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
60 }
61
62 Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
63 System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
64 g.DrawString(checkCode, font, brush, 2, 2);
65
66 /**////画图片的前景噪音点
67 for (int i = 0; i < 100; i++)
68 {
69 int x = random.Next(image.Width);
70 int y = random.Next(image.Height);
71
72 image.SetPixel(x, y, Color.FromArgb(random.Next()));
73 }
74
75 /**////画图片的边框线
76 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
77
78 System.IO.MemoryStream ms = new System.IO.MemoryStream();
79 image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
80 Response.ClearContent();
81 Response.ContentType = "image/Gif";
82 Response.BinaryWrite(ms.ToArray());
83 }
84 finally
85 {
86 g.Dispose();
87 image.Dispose();
88 }
89 }
转自http://Teerylee.cnblogs.com/
生成随机验证图片--ASP.NET中常用代码之二相关推荐
- 发送邮件代码--ASP.NET中常用代码之一
1,使用Asp.net 实现邮件系统 <summary> 2 /// 功能:实现在Web页面中发送Email 3 /// </summary> ...
- [转帖]ASP.NET中常用的优化性能的方法
ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理) 1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要 ...
- ASP.NET中常用的文件上传下载方法
ASP.NET中常用的文件上传下载方法 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务 ...
- ASP.NET中常用功能代码总结(3)——上传图片到数据库
ASP.NET中常用功能代码总结(3)--上传图片到数据库<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:offi ...
- struts2生成随机验证码图片
之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: ...
- Asp.NET中常用的一些优化性能的方法
ASP.NET 的缓存机制相比ASP有很大的改进,本文档除对常用优化方法进行总结介绍外,强调了如何使用ASP.NET的缓存来获得最佳性能. 1:不要使用不必要的session 和ASP中一样,在不必要 ...
- ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl
ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库 源码下载 Maticsoft.DBUtility.dll 数据访问类库组件 源码下载 LtpPag ...
- ASP.NET中常用功能代码总结(1)——发送邮件篇
ASP.NET中常用功能代码总结(1)--发送邮件篇<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office: ...
- ASP.Net 中常用的数据库连接方式
ASP.Net 中常用的数据库连接方式 在ASP.Net中,连接数据库有以下四种方式: 1.System.Data.OleDb.OleDbConnection 2.System.Data.SqlCl ...
最新文章
- jeecg 与 jeecg-p3有什么区别?
- 机器学习里的kernel是指什么?
- spring boot + mybatis + layui + shiro后台权限管理系统
- spring mvc项目在IDEA下使用jrebel热部署报错!!
- d3h 技嘉b365m 黑苹果_黑苹果硬件选购指南主板amp;硬盘amp;WI
- html解决页面放大后元素乱排的问题
- mysql查询重复名字的数据都查出来_mysql 查询重复字段 内容
- 计算机无法添加用户名或密码错误,win10系统无法登录网络打印机提示未知的用户名或者密码错误的设置技巧...
- 声纹技术(七):声纹技术的未来
- 数据分析统计学基础笔记
- 百分点大数据技术团队:BI嵌入式分析实践
- 一个脚本打比赛之SMP WEIBO 2016
- android 获得ram大小,Android中获取(RAM)总运存大小跟可用运存大小
- CAD快捷键out了?这样的CAD编辑命令,你见过嘛?
- [bzoj3875][DP][最短路]骑士游戏
- 矩阵理论与方法-若当标准型的求法
- 2021- css-doodle
- 小五思科技术学习笔记之EIGRP
- Brainstorm + Fieldtrip IEEG定位及分区教程
- 交通银行网上支付接口调用测试实例
热门文章
- 【UML】状态图Statechart diagram(转)
- bzoj2054 疯狂的馒头
- 【原创】Python 源文件编码解读
- 1-VMware workstation认识
- android报错res\drawable-xhdpi\ic_Dianhua.png: Invalid file name: must contain only [a-z0-9_.]
- Flash Builder 4.7 类模板编辑设置
- 嵌套类可以先在外围类中声明,然后在外围类中定义
- spring boot2.x使用rabbitmq
- Spring Boot定时任务应用实践
- mac环境下myeclipse上配置tomcat