c# .net 生成图片验证码 By shawl.qiu

类别: 技术记, c#/.net
标签:
摘要:
正文:

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:
  1. <%@ Page Language="C#" AutoEventWireup="True" %>
  2. <%@ import Namespace="System.Drawing"%>
  3. <%@ import Namespace="System.Drawing.Drawing2D"%>
  4. <%@ import Namespace="System.Web"%>
  5. <script runat="server">
  6.  private void Page_Load(object sender, System.EventArgs e)
  7.  {
  8.   String sRndStr=checkcode.rndStr(4);
  9.   checkcode.general(sRndStr);
  10.  } 
  11. /*-----------------------------------------------------------------------------------*\
  12.  * shawl.qiu c# .net checkcode class v1.0
  13. \*-----------------------------------------------------------------------------------*/
  14. //---------------------------------------------------------------------begin class checkcode
  15. public class checkcode
  16. {
  17.  //-----------------------------------begin event
  18.  public checkcode()
  19.  {
  20.  }
  21.  ~checkcode()
  22.  {
  23.  }
  24.  //-----------------------------------end event
  25.  //-----------------------------------begin public constant
  26.  //-----------------------begin about
  27.  public const String auSubject="shawl.qiu c# .net checkcode class";
  28.  public const String auVersion="v1.0";
  29.  public const String au="shawl.qiu";
  30.  public const String auEmail="shawl.qiu@gmail.com";
  31.  public const String auBlog="http://blog.csdn.net/btbtd";
  32.  public const String auCreateDate="2007-2-1";
  33.  //-----------------------end about
  34.  //-----------------------------------end public constant
  35.  //-----------------------------------begin public static method
  36.  public static void general(String sCc)
  37.  {
  38.   Int32 ccLen=sCc.Length;
  39.   
  40.   String ccFtFm="Arial";
  41.   Int32 ccFtSz=12;
  42.   
  43.   Int32 ccWidth=ccLen*ccFtSz+1;
  44.   Int32 ccHeight=ccFtSz+5;
  45.   
  46.   using(Bitmap oImg = new Bitmap(ccWidth, ccHeight))
  47.   {
  48.    using(Graphics oGpc=Graphics.FromImage(oImg))
  49.    {
  50.     HatchBrush hBrush = new HatchBrush(HatchStyle.DashedVertical,
  51.       Color.Yellow, Color.Silver)
  52.     oGpc.FillRectangle(hBrush, 0, 0, ccWidth, ccWidth);
  53.     
  54.     oGpc.DrawString(sCc,new System.Drawing.Font(ccFtFm,ccFtSz, FontStyle.Bold),
  55.      new System.Drawing.SolidBrush(Color.Black),0,0)
  56.      
  57.     //-----------------------边框
  58.     Pen blackPen = new Pen(Color.Black, 1);
  59.     oGpc.DrawLine(blackPen, 0, ccHeight, 0, 0); // 左竖线
  60.     oGpc.DrawLine(blackPen, 0,0,ccWidth,0); // 顶横线
  61.     oGpc.DrawLine(blackPen, ccWidth-1,0,ccWidth-1,20); // 右竖线
  62.     oGpc.DrawLine(blackPen, 0, ccHeight-1, ccWidth, ccHeight-1); // 底横线
  63.     
  64.     writeImg(oImg);
  65.    }
  66.   }
  67.  } // end public static void general
  68.  public static String rndStr(Int32 len)
  69.  {
  70.   String sTemp="";
  71.   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";
  72.   String[] aRnd=sForRnd.Split(',');
  73.   
  74.   Random oRnd=new Random();
  75.   Int32 iArLen=aRnd.Length;
  76.   
  77.   for(Int32 i=0; i<len; i++)
  78.   {
  79.    sTemp+=aRnd[oRnd.Next(0,iArLen)];
  80.   }
  81.   return sTemp;
  82.  } // end public static String rndStr
  83.  //-----------------------------------end public static method
  84.  //-----------------------------------begin private static method
  85.  private static void writeImg(Bitmap oImg)
  86.  {
  87.   using(System.IO.MemoryStream ms=new System.IO.MemoryStream())
  88.   {
  89.    oImg.Save(ms,System.Drawing.Imaging.ImageFormat.Png)
  90.    HttpContext.Current.Response.ClearContent();  
  91.    HttpContext.Current.Response.ContentType="image/Png";
  92.    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
  93.   }
  94.  } // end private static void writeImg
  95. }
  96. //---------------------------------------------------------------------end class checkcode
  97. </script>
文章相关信息:
主题: c# .net 生成图片验证码 By shawl.qiu
发表者: shawl.qiu
电子邮件: shawl.qiu@gmail.com
QQ: 908202921
MSN: btbtd@msn.com
Homepage: http://www.btbtd.org/
Blog: http://blog.csdn.net/btbtd/
发表日期: 2007-2-1 0:00:00
更新日期: 2007-2-1 0:00:00
来源引用: shawl.qiu CSharp DotNet 个人资料管理系统
引用本页: http://gi.2288.org/mod/article/display/Default.aspx?aid=17939
关闭
Google
搜索WWW
搜索www.btbtd.org
搜索blog.csdn.net
Powered by shawl.qiu © 2008-2010 the shawl.qiu Javascript Kits
Copyright © 2008-2010 by shawl.qiu