程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> c# .net 生成圖片驗證碼的代碼

c# .net 生成圖片驗證碼的代碼

編輯:ASP.NET基礎
說明:
 .net 萬歲...
 .net framework 的類庫真是太強了, 用 GDI+ 可以干N多N多事情.
  廣告
<%@ Page Language="C#" AutoEventWireup="True" %>  
<%@ import Namespace="System.Drawing"%>  
<%@ import Namespace="System.Drawing.Drawing2D"%>  
<%@ import Namespace="System.Web"%>  
<script runat="server">  
 private void Page_Load(object sender, System.EventArgs e)  
 {  
  String sRndStr=checkcode.rndStr(4);  
  checkcode.general(sRndStr);  
 }   
/*-----------------------------------------------------------------------------------*\  
 * shawl.qiu c# .net checkcode class v1.0  
\*-----------------------------------------------------------------------------------*/  
//---------------------------------------------------------------------begin class checkcode  
public class checkcode  
{  
 //-----------------------------------begin event  
 public checkcode()  
 {  
 }  
 ~checkcode()  
 {  
 }  
 //-----------------------------------end event  
 //-----------------------------------begin public constant  
 //-----------------------begin about  
 public const String auSubject="shawl.qiu c# .net checkcode class";  
 public const String auVersion="v1.0";  
 public const String au="shawl.qiu";  
 public const String auEmail="[email protected]";  
 public const String auBlog="http://blog.csdn.net/btbtd";  
 public const String auCreateDate="2007-2-1";  
 //-----------------------end about  
 //-----------------------------------end public constant  
 //-----------------------------------begin public static method  
 public static void general(String sCc)  
 {  
  Int32 ccLen=sCc.Length;  
  String ccFtFm="Arial";  
  Int32 ccFtSz=12;  
  Int32 ccWidth=ccLen*ccFtSz+1;  
  Int32 ccHeight=ccFtSz+5;  
  using(Bitmap oImg = new Bitmap(ccWidth, ccHeight))  
  {  
   using(Graphics oGpc=Graphics.FromImage(oImg))  
   {  
    HatchBrush hBrush = new HatchBrush(HatchStyle.DashedVertical,  
      Color.Yellow, Color.Silver);   
    oGpc.FillRectangle(hBrush, 0, 0, ccWidth, ccWidth);  
    oGpc.DrawString(sCc,new System.Drawing.Font(ccFtFm,ccFtSz, FontStyle.Bold),  
     new System.Drawing.SolidBrush(Color.Black),0,0);   
    //-----------------------邊框  
    Pen blackPen = new Pen(Color.Black, 1);  
    oGpc.DrawLine(blackPen, 0, ccHeight, 0, 0); // 左豎線  
    oGpc.DrawLine(blackPen, 0,0,ccWidth,0); // 頂橫線  
    oGpc.DrawLine(blackPen, ccWidth-1,0,ccWidth-1,20); // 右豎線  
    oGpc.DrawLine(blackPen, 0, ccHeight-1, ccWidth, ccHeight-1); // 底橫線  
    writeImg(oImg);  
   }  
  }  
 } // end public static void general  
 public static String rndStr(Int32 len)  
 {  
  String sTemp="";  
  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";  
  String[] aRnd=sForRnd.Split(',');  
  Random oRnd=new Random();  
  Int32 iArLen=aRnd.Length;  
  for(Int32 i=0; i<len; i++)  
  {  
   sTemp+=aRnd[oRnd.Next(0,iArLen)];  
  }  
  return sTemp;  
 } // end public static String rndStr  
 //-----------------------------------end public static method  
 //-----------------------------------begin private static method  
 private static void writeImg(Bitmap oImg)  
 {  
  using(System.IO.MemoryStream ms=new System.IO.MemoryStream())  
  {  
   oImg.Save(ms,System.Drawing.Imaging.ImageFormat.Png);   
   HttpContext.Current.Response.ClearContent();    
   HttpContext.Current.Response.ContentType="image/Png";  
   HttpContext.Current.Response.BinaryWrite(ms.ToArray());  
  }  
 } // end private static void writeImg  
}  
//---------------------------------------------------------------------end class checkcode  
</script>  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved