c#.net生成图片验证码的代码

网络编程 ASP.NET 实用技巧 分类:[default] 更新日期: 2016-06-30

说明:
 .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="[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>  

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
    Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
    这篇文章主要介绍了Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下今天项目经理刚交给一个活儿,要我实现这样一个功能:要实现的是验证码文本框变窄一点,然后右边加入一副验证码图片,并且在响应式布局的情况下在移动端访问的时候验证码图片能保持和验证码文本框在同一行,这个怎么做?难为了半天 ...
  • PHP生成静态HTML文档实现代码
    这篇文章主要为大家详细介绍了PHP生成静态HTML文档实现代码,将数据库中的文章数据生成单个的HTML文档原理,感兴趣的小伙伴们可以参考一下利用PHP,将数据库中的文章数据生成单个的HTML文档.首先,有利于搜索引擎的收录.其次,避免数据库中的字段暴露在地址栏上,更安全. 给出代码: <?php //引入数据库配置文件 include( dirname ...
  • php好代码风格的阶段性总结
    这篇文章主要介绍了php好代码风格,阶段性总结了php程序设计中变量.函数.参数的相关使用注意事项与编程技巧,具有一定参考借鉴价值,需要的朋友可以参考下本文总结了php好代码的风格,分享给大家供大家参考,具体如下: 1.避免使用魔数 if($age<18){ } 这个18不太明白为什么要这样子. 可以将28定义在一个变量里面,这个变量命名表明了这个值的 ...
  • 将PHP的session数据存储到数据库中的代码实例
    这里我们将分享两个将PHP的session数据存储到数据库中的代码实例,分别针对PostgreSQL与MySQL,需要的朋友可以参考下一个开发环境有多个网站,需要使用不同的session,解决方案很多.不过这次也高大上一把,用数据库存,方便以后扩展. PostgreSQL版首先是数据库的部分 --drop table php_session create u ...
  • 提高代码可读性的十大注释技巧分享
    这篇文章主要介绍了提高代码可读性的十大注释技巧,详细分析了编程开发中常用的代码注释方法,需要的朋友可以参考下本文讲述了提高代码可读性的十大注释技巧.分享给大家供大家参考,具体如下: 很多程序员在写代码的时候往往都不注意代码的可读性,让别人在阅读代码时花费更多的时间.其实,只要程序员在写代码的时候,注意为代码加注释,并以合理的格式为代码加注释,这样就方便别人查 ...
  • Swift中内置的集合类型学习笔记
    Swift中内置的集合类型学习笔记
    Swift中自带数组.set.字典三大集合类型,这里将学习过程中的基础的Swift中内置的集合类型学习笔记进行整理,需要的朋友可以参考下一.引言 Swift中提供了3种集合类型,Array数据类型,Set集合类型,Dictionary字典类型.Array用于存放一组有序的数据,数据角标从0开始一次递增:Set用于存放一组无序的数据,数据不可以重复:Dicti ...
猜你喜欢