ASP.NET C# 验证码 支持中文 噪点 弯曲
来源:互联网 发布:花生壳域名dns解析 编辑:程序博客网 时间:2024/04/30 18:27
/// <summary>
/// 根据指定参数返回BitMap对象
/// 引用如下:
/// using System.Drawing;
/// 调用例子如下:
/// eg1、保存为图象文件为
/// Bitmap srBmp = srBitmap(srs);
/// srBmp.Save(Directory.GetCurrentDirectory() + "//srs.gif", System.Drawing.Imaging.ImageFormat.Gif);
/// srBmp.Dispose();
/// eg2。网页中调用方式如下
/// Bitmap srBmp = srBitmap(srs);
/// System.IO.MemoryStream srMS = new System.IO.MemoryStream();
/// srBmp.Save(srMS,System.Drawing.Imaging.ImageFormat.Gif);
/// Response.ClearContent();
/// Response.ContentType = "image/gif";
/// Response.BinaryWrite(srMS.ToArray());
/// srBmp.Dispose();
/// </summary>
/// <param name="srs"></param>
/// <returns></returns>
public static Bitmap srBitmap(string srs)
{
//定义图片弯曲的角度
int srseedangle = 45;
//定义图象
Bitmap srBmp = new Bitmap(srs.Length*20,30);
//画图
Graphics srGraph = Graphics.FromImage(srBmp);
//清空图象
srGraph.Clear(Color.AliceBlue);
//给图象画边框
srGraph.DrawRectangle(new Pen(Color.Black,0),0,0,srBmp.Width-1,srBmp.Height-1);
//定义随即数
Random srRandom = new Random();
//定义画笔
Pen srPen = new Pen(Color.LightGray,0);
//画噪点
for (int i = 0; i < 100; i++)
{
srGraph.DrawRectangle(srPen,srRandom.Next(1,srBmp.Width-2),srRandom.Next(1,srBmp.Height-2),1,1);
}
//将字符串转化为字符数组
char[] srchars = srs.ToCharArray();
//封状文本
StringFormat srFormat = new StringFormat(StringFormatFlags.NoClip);
//设置文本垂直居中
srFormat.Alignment = StringAlignment.Center;
//设置文本水平居中
srFormat.LineAlignment = StringAlignment.Center;
//定义字体颜色
Color[] srColors ={ Color.Black,Color.Red,Color.DarkBlue,Color.Blue,Color.Orange,Color.Brown,Color.DarkCyan,Color.Purple};
//定义字体
string[] srFonts ={ "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" };
//循环画出每个字符
for (int i = 0, j = srchars.Length; i < j; i++)
{
//定义字体 参数分别为字体样式 字体大小 字体字形
Font srFont = new Font(srFonts[srRandom.Next(5)], srRandom.Next(12,20), FontStyle.Regular);
//填充图形
Brush srBrush = new SolidBrush(srColors[srRandom.Next(7)]);
//定义坐标
Point srPoint = new Point(16, 16);
//定义倾斜角度
float srangle = srRandom.Next(-srseedangle, srseedangle);
//倾斜
srGraph.TranslateTransform(srPoint.X, srPoint.Y);
srGraph.RotateTransform(srangle);
//填充字符
srGraph.DrawString(srchars[i].ToString(),srFont,srBrush,1,1,srFormat);
//回归正常
srGraph.RotateTransform(-srangle);
srGraph.TranslateTransform(2,-srPoint.Y);
}
srGraph.Dispose();
return srBmp;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/srnpr/archive/2007/11/08/1875187.aspx
- ASP.NET C# 验证码 支持中文 噪点 弯曲
- ASP.NET C# 验证码 支持中文 噪点 弯曲
- ASP.NET验证码攻略,支持中文,字母,数字C#
- ASP.NET 验证码 攻略,支持中文,字母,数字
- 中文验证码【asp.net】
- asp.net中文验证码
- asp.net下中文验证码
- asp.net(c#)中文验证码程序
- ASP.NET中文验证码详解
- asp.net下中文验证码
- c# asp.net实现验证码
- c# asp.net实现验证码
- ASP.NET C#验证码控件使用
- asp.net中用C#生产验证码
- asp.net,C#验证码使用
- ASP.NET 对验证控件的支持
- 生成中文的验证码(ASP.NET C#)
- Asp.net无刷新中文验证码调试成功
- SQL Server 2008阻止保存要求重新创建表的更改
- 专注于msp430
- 特征参数提取
- 把移动客服小姐逼到崩溃!!!
- 3.19如何实现一个像visual C++和Word那样的全屏视图?
- ASP.NET C# 验证码 支持中文 噪点 弯曲
- 合并表中相同列实例
- jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中
- Oracle移动datafile的位置
- pcode39用postscript实现的代码(抄的)
- java 验证身份证 身份证java验证
- BCGControllBar下设计Office 2007风格时,DEBUG+STATIC状态下的错误提示解决办法.
- Struts2总结2
- DVD光盘类型