要完成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;
- }
以上介绍C#创建验证码
【编辑推荐】