首页 > 编程 > .NET > 正文

c# .net 生成图片验证码的代码

2024-07-10 13:14:28
字体:
来源:转载
供稿:网友
说明: 
.net 万岁... 
.net framework 的类库真是太强了, 用 GDI+ 可以干N多N多事情. 
广告时间: 
shawl.qiu C# CMS 系统 预计40天后开始编码, 现在逐步设计中, 免得到时求职说什么什么作品...唉. 
PS: 今天求职真是惨不忍睹, 谁要招网页相关的请联系 13435580019, 邱先生. 
什么地方俺都去, 工资只要能过活就行, 但是食宿问题得解决. 
shawl.qiu 
2007-02-01 
http://blog.csdn.net/btbtd 
class checkcode: 
复制代码代码如下:

<%@ Page Language="C#" AutoEventWireup="True" %> 
<%@ import Namespace="System.Drawing"%> 
<%@ import Namespace="System.Drawing.Drawing2D"%> 
<%@ import Namespace="System.Web"%> 
<script runat="server"> 
private void Page_Load(object sender, System.EventArgs e) 

String sRndStr=checkcode.rndStr(4); 
checkcode.general(sRndStr); 

/*-----------------------------------------------------------------------------------*/ 
* shawl.qiu c# .net checkcode class v1.0 
/*-----------------------------------------------------------------------------------*/ 
//---------------------------------------------------------------------begin class checkcode 
public class checkcode 

//-----------------------------------begin event 
public checkcode() 


~checkcode() 


//-----------------------------------end event 
//-----------------------------------begin public constant 
//-----------------------begin about 
public const String auSubject="shawl.qiu c# .net checkcode class"; 
public const String auVersion="v1.0"; 
public const String au="shawl.qiu"; 
public const String auEmail="shawl.qiu@gmail.com"; 
public const String auBlog="http://blog.csdn.net/btbtd"; 
public const String auCreateDate="2007-2-1"; 
//-----------------------end about 
//-----------------------------------end public constant 
//-----------------------------------begin public static method 
public static void general(String sCc) 

Int32 ccLen=sCc.Length; 
String ccFtFm="Arial"; 
Int32 ccFtSz=12; 
Int32 ccWidth=ccLen*ccFtSz+1; 
Int32 ccHeight=ccFtSz+5; 
using(Bitmap oImg = new Bitmap(ccWidth, ccHeight)) 

using(Graphics oGpc=Graphics.FromImage(oImg)) 

HatchBrush hBrush = new HatchBrush(HatchStyle.DashedVertical, 
Color.Yellow, Color.Silver); 
oGpc.FillRectangle(hBrush, 0, 0, ccWidth, ccWidth); 
oGpc.DrawString(sCc,new System.Drawing.Font(ccFtFm,ccFtSz, FontStyle.Bold), 
new System.Drawing.SolidBrush(Color.Black),0,0); 
//-----------------------边框 
Pen blackPen = new Pen(Color.Black, 1); 
oGpc.DrawLine(blackPen, 0, ccHeight, 0, 0); // 左竖线 
oGpc.DrawLine(blackPen, 0,0,ccWidth,0); // 顶横线 
oGpc.DrawLine(blackPen, ccWidth-1,0,ccWidth-1,20); // 右竖线 
oGpc.DrawLine(blackPen, 0, ccHeight-1, ccWidth, ccHeight-1); // 底横线 
writeImg(oImg); 


} // end public static void general 
public static String rndStr(Int32 len) 

String sTemp=""; 
String sForRnd="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; 
String[] aRnd=sForRnd.Split(','); 
Random oRnd=new Random(); 
Int32 iArLen=aRnd.Length; 
for(Int32 i=0; i<len; i++) 

sTemp+=aRnd[oRnd.Next(0,iArLen)]; 

return sTemp; 
} // end public static String rndStr 
//-----------------------------------end public static method 
//-----------------------------------begin private static method 
private static void writeImg(Bitmap oImg) 

using(System.IO.MemoryStream ms=new System.IO.MemoryStream()) 

oImg.Save(ms,System.Drawing.Imaging.ImageFormat.Png); 
HttpContext.Current.Response.ClearContent(); 
HttpContext.Current.Response.ContentType="image/Png"; 
HttpContext.Current.Response.BinaryWrite(ms.ToArray()); 

} // end private static void writeImg 

//---------------------------------------------------------------------end class checkcode 
</script> 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表