网站登录总是会用到验证码,生成验证码对于C#来说很简单。因为有专门封装好的GDI+类可以直接调用使用具体代码如下

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing; namespace Ajax.验证码
{
public partial class Yanma : System.Web.UI.Page
{
private int CodeNum = ;
private string codeNum = "";
protected void Page_Load(object sender, EventArgs e)
{
VeriflcationCode();
HuaCode(codeNum);
} private void VeriflcationCode()
{
//生成验证码
string AllChar = "1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z";
string[] StrChar = AllChar.Split(',');
Random rd = new Random();
string Codes = "";
for (int i = ; i < CodeNum; i++)
{
Codes += StrChar[rd.Next(, )];
}
codeNum = Codes;
Session["VerCode"] = Codes;
} private void HuaCode(string Codes)
{
int iwidth = (int)(Codes.Length * );//定义画布的宽
System.Drawing.Bitmap images = new System.Drawing.Bitmap(iwidth, );//声明一个画布类,初始化图片的宽和高 Graphics g = Graphics.FromImage(images);
Font f = new Font("Arial", );//定义文字类型
Brush b = new System.Drawing.SolidBrush(Color.Black);//文字颜色 黑色
Brush r = new System.Drawing.SolidBrush(Color.FromArgb(, , ));//文字颜色
g.Clear(System.Drawing.ColorTranslator.FromHtml("#99C1CB"));//背景色 char[] ch = Codes.ToCharArray();
for (int i = ; i < ch.Length; i++)
{
if (ch[i] >= '' && ch[i] <= '')
{
//数字用红色显示
g.DrawString(ch[i].ToString(), f, r, + (i * ), );//将文字画出 文字、字体类型、字体颜色、字体间距、字体于顶部间距
}
else
{ //字母用黑色显示
g.DrawString(ch[i].ToString(), f, b, + (i * ), );
}
} //for循环用来生成一些随机的水平线
Pen blackPen = new Pen(Color.Black, );
Random rand = new Random();
for (int i = ; i < ; i++)
{
int y = rand.Next(images.Height);
g.DrawLine(blackPen, , y, images.Width, y);
} System.IO.MemoryStream ms = new System.IO.MemoryStream();
images.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//history back 不重复
Response.Cache.SetNoStore();//这一句
Response.ClearContent();
Response.ContentType = "image/Jpeg";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
images.Dispose();
}

效果为:

C# 生成简单验证码的更多相关文章

  1. java生成简单验证码图片

    概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在ja ...

  2. js简单验证码的生成和验证

    如何用js生成简单验证码,并验证是否正确的方法 1.html页面如下 <div> <table border="0" cellspacing="5&qu ...

  3. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  4. 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...

  5. 菜鸟学Java(六)——简单验证码生成(Java版)

    验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等),然后将这些生成的字符绘制成一张图片,再在图片上加上一些干扰元素 ...

  6. php生成动态验证码 加减算法验证码 简单验证码

    预览效果: <?php /** *ImageCode 生成包含验证码的GIF图片的函数 *@param $string 字符串 *@param $width 宽度 *@param $height ...

  7. JavaScript生成简单数字验证码

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  8. 用imagemagick和tesseract-ocr破解简单验证码

    用imagemagick和tesseract-ocr破解简单验证码 Tesseract-ocr据说辨识程度是世界排名第三,可谓神器啊. 准备工作: 1.安装tesseract-ocr sudo apt ...

  9. 使用Pillow库 创建简单验证码

    使用Pillow生成简单的验证码 本想做成字体各自按随机角度倾斜, 但没有在Pillow中找到相关的方法 import randomfrom PIL import Image, ImageDraw, ...

随机推荐

  1. mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler

    mybatis 比 ibatis 改进了很多,特别是支持了注解,支持了plugin inteceptor,也给开发者带来了更多的灵活性,相比其他ORM,我还是挺喜欢mybatis的. 闲言碎语不要讲, ...

  2. Tomcat内存设置详解

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...

  3. Java、Android中Math详解

    java.math.Math类常用的常量和方法: Math.PI 记录的圆周率 Math.E记录e的常量 Math.abs 求绝对值 Math.sin 正弦函数 Math.asin 反正弦函数 Mat ...

  4. Java各种类型占用的字节数

    Java 占用字节数 转自:http://www.blogjava.net/stevenjohn/archive/2013/10/18/405416.html 数据类型 大小(二进制位数) 范围 默认 ...

  5. NS_ENUM和NS_OPTIONS区别

    首先,NS_ENUM和NS_OPTIONS都是宏. Foundation框架中定义了一些辅助的宏,用这些宏来定义枚举类型时,也可以指定用于保存枚举值的底层数据类型.这些宏具有向后兼容能力,如果目标平台 ...

  6. Linux下配置Java环境变量

    今天开始简单的学习了一下在Linux下安装jdk 写下来总结一下以便后来的查找和复习 首先下载Linux版的jdk我这里使用的jdk1.7:http://download.oracle.com/otn ...

  7. CSS3实战手册(第3版)(影印版)

    <CSS3实战手册(第3版)(影印版)> 基本信息 原书名:CSS3: The Missing Manual, 3E 作者: David Sawyer McFarland 出版社:东南大学 ...

  8. 新手留言薄asp.net MVC 学习(适合新手学习)

    以下是发布到IIS后的效果截图: 1)首页展示: 2)登录后台页面展示: 3)后台页面展示: 该项目源代码下载地址:http://files.cnblogs.com/files/f12-liugang ...

  9. [转]div内容底部对齐

    本文转自:http://blog.csdn.net/hellomy/article/details/5889833 <html> <head> <meta http-eq ...

  10. C#读取shp的属性信息

    一个完整的ESRI的shape文件包括一个主文件,一个索引文件,和一个dBASE表文件.主文件是一个直接存取,变记录长度文件,其中每个记录描述一 个由其顶点列表组成的shape.在索引文件中,每条记录 ...