c# .net 生成图片验证码 By shawl.qiu
说明:
.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>