C#创建验证码学习笔记

开发 后端
本文介绍要完成C#创建验证码,首先,创建一个CLASS类,然后需要add Reference的方式添加 System.Drawing(画画的类)。

要完成C#创建验证码,首先,创建一个CLASS类,然后需要add Reference的方式添加 System.Drawing(画画的类)。

C#创建验证码代码如下:

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

以上介绍C#创建验证码

【编辑推荐】

  1. C#反射方法学习总结
  2. 浅谈C#测量cpu性能
  3. C#远程计算机的一些理论知识
  4. 浅析C# Static修饰
  5. C#转换农历的简单方法
责任编辑:佚名 来源: 中国IT实验室
相关推荐

2009-08-11 14:05:28

JSP验证码

2009-08-12 11:05:00

2009-08-06 16:30:58

C#代码和验证码图片

2014-04-24 10:09:05

验证码C#

2013-06-19 10:19:59

2020-11-16 07:28:53

验证码

2009-02-09 14:17:36

2021-01-19 10:29:34

短信验证码密码

2015-03-23 17:58:04

验证码倒计时并行

2022-02-11 07:10:15

验证码

2015-09-21 15:31:05

php实现验证码

2017-12-21 07:38:19

2009-08-20 15:02:57

C# If语句

2009-08-12 15:50:40

C# ListBox

2015-03-17 09:28:04

2009-08-13 18:21:52

C#学习笔记

2009-08-12 09:28:36

C# WiteOne

2011-11-02 12:43:33

2011-11-02 16:46:41

点赞
收藏

51CTO技术栈公众号