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

本文介绍了一个使用C#和.NET Framework生成图片验证码的方法。通过GDI+库,该方法能够创建包含随机字符的验证码图片,并将其输出为PNG格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/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.  
  22.  ~checkcode()
  23.  {
  24.  }
  25.  //-----------------------------------end event
  26.  
  27.  //-----------------------------------begin public constant
  28.  //-----------------------begin about
  29.  public const String auSubject="shawl.qiu c# .net checkcode class";
  30.  public const String auVersion="v1.0";
  31.  public const String au="shawl.qiu";
  32.  public const String auEmail="shawl.qiu@gmail.com";
  33.  public const String auBlog="http://blog.youkuaiyun.com/btbtd";
  34.  public const String auCreateDate="2007-2-1";
  35.  //-----------------------end about
  36.  //-----------------------------------end public constant
  37.  
  38.  //-----------------------------------begin public static method
  39.  public static void general(String sCc)
  40.  {
  41.   Int32 ccLen=sCc.Length;
  42.   
  43.   String ccFtFm="Arial";
  44.   Int32 ccFtSz=12;
  45.   
  46.   Int32 ccWidth=ccLen*ccFtSz+1;
  47.   Int32 ccHeight=ccFtSz+5;
  48.   
  49.   using(Bitmap oImg = new Bitmap(ccWidth, ccHeight))
  50.   {
  51.    using(Graphics oGpc=Graphics.FromImage(oImg))
  52.    {
  53.     HatchBrush hBrush = new HatchBrush(HatchStyle.DashedVertical,
  54.       Color.Yellow, Color.Silver)
  55.     oGpc.FillRectangle(hBrush, 0, 0, ccWidth, ccWidth);
  56.     
  57.     oGpc.DrawString(sCc,new System.Drawing.Font(ccFtFm,ccFtSz, FontStyle.Bold),
  58.      new System.Drawing.SolidBrush(Color.Black),0,0)
  59.      
  60.     //-----------------------边框
  61.     Pen blackPen = new Pen(Color.Black, 1);
  62.     oGpc.DrawLine(blackPen, 0, ccHeight, 0, 0); // 左竖线
  63.     oGpc.DrawLine(blackPen, 0,0,ccWidth,0); // 顶横线
  64.     oGpc.DrawLine(blackPen, ccWidth-1,0,ccWidth-1,20); // 右竖线
  65.     oGpc.DrawLine(blackPen, 0, ccHeight-1, ccWidth, ccHeight-1); // 底横线
  66.     
  67.     writeImg(oImg);
  68.    }
  69.   }
  70.  } // end public static void general
  71.  
  72.  public static String rndStr(Int32 len)
  73.  {
  74.   String sTemp="";
  75.   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";
  76.   String[] aRnd=sForRnd.Split(',');
  77.   
  78.   Random oRnd=new Random();
  79.   Int32 iArLen=aRnd.Length;
  80.   
  81.   for(Int32 i=0; i<len; i++)
  82.   {
  83.    sTemp+=aRnd[oRnd.Next(0,iArLen)];
  84.   }
  85.   return sTemp;
  86.  } // end public static String rndStr
  87.  //-----------------------------------end public static method
  88.  
  89.  //-----------------------------------begin private static method
  90.  private static void writeImg(Bitmap oImg)
  91.  {
  92.   using(System.IO.MemoryStream ms=new System.IO.MemoryStream())
  93.   {
  94.    oImg.Save(ms,System.Drawing.Imaging.ImageFormat.Png)
  95.    HttpContext.Current.Response.ClearContent();  
  96.    HttpContext.Current.Response.ContentType="image/Png";
  97.    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
  98.   }
  99.  } // end private static void writeImg
  100. }
  101. //---------------------------------------------------------------------end class checkcode
  102. </script>
  103.  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值