要完成C#创建验证码,首先,创建一个CLASS类,然后需要add Reference的方式添加 System.Drawing(画画的类)。
C#创建验证码代码如下:
复制
/**////<summary> ///定义显示的随机字符 ///</summary> ///<paramnameparamname="strList"></param> ///<returns></returns> privatestringimageStr(char[]strList) ...{ if(strList==null) strList="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); intcodeLengh=4; stringradomCode=""; Randomr=newRandom(); for(inti=0;i<codeLengh;i++) ...{ radomCode+=strList[r.Next(strList.Length)]; } returnradomCode; } /**////<summary> ///创建随机验证字符的IMAGE,并保存,同时返回随机字符串 ///</summary> ///<paramnameparamname="iWidth">图片宽度0时,默认为55</param> ///<paramnameparamname="iHeight">图片高度0时,默认为22</param> ///<paramnameparamname="font">字符字体null时,默认为"Arial",12,
FontStyle.Bold</param> ///<paramnameparamname="sb">字符颜色null时,默认为红</param> ///<paramnameparamname="ImagePath">需要保存的文件绝对路径</param> ///<paramnameparamname="strList">随即字符库null时,默认为0-9A-Z</param> ///<returns>返回随机字符串</returns> publicstringcreateImgWithStr
(intiWidth,intiHeight,Fontfont,SolidBrushsb,stringImagePath,char[]strList) ...{ if(font==null) font=newFont("Arial",12,FontStyle.Bold); if(sb==null) sb=newSolidBrush(Color.Red); if(iWidth==0) iWidth=55; if(iHeight==0) iHeight=22; //得到随机字符串 stringimageString=imageStr(strList); //定义横向竖向都画4跳线 intlineCount=4; 这2支笔用来画线条的 Penpen1=newPen(Color.Gold,1); Penpen2=newPen(Color.Black,2); //定义图片 Bitmapimage=newBitmap(iWidth,iHeight); //跟J2ME一样的画笔 GraphicsGraphicsg=Graphics.FromImage(image); //先画背景色当然你可以自定义下 g.Clear(ColorTranslator.FromHtml("#F0F0F0")); //确定写字的落点 Rectanglerect=newRectangle(5,2,iWidth,iHeight); Randomr=newRandom(); //默认随机画横向竖向4条线 for(inti=0;i<lineCount;i++) ...{ Pointp1=newPoint(0,r.Next(iHeight)); Pointp2=newPoint(iWidth,r.Next(iHeight)); Pointp3=newPoint(r.Next(iWidth),0); Pointp4=newPoint(r.Next(iWidth),iHeight); g.DrawLine(pen1,p1,p2); g.DrawLine(pen2,p3,p4); } //写字 g.DrawString(imageString,font,sb,rect); //删除源文件 if(File.Exists(ImagePath)) File.Delete(ImagePath); //保存文件,我定义为jpeg格式 image.Save(ImagePath,System.Drawing.Imaging.ImageFormat.Jpeg); //释放资源 g.Dispose(); image.Dispose(); returnimageString; }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
以上介绍C#创建验证码
【编辑推荐】