软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

生成图片验证码的代码
发布于:第八基地 来源:duote 作者:天堂路上 时间:2016-04-11 点击:272
  说明:

  .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:

  复制代码 代码如下:

  <%@ 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="shawl.qiu@gmail.com";

  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>

对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈