使用C#生成验证码图片,然后在网页中直接使用,很方便的用法。

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.UI;
using System.Drawing.Drawing2D;
using System.IO;/// <summary>
/// 生成验证码的类
/// </summary>
public class ValidateCode
{public ValidateCode(){}/// <summary>/// 验证码的最大长度/// </summary>public int MaxLength{get { return 10; }}/// <summary>/// 验证码的最小长度/// </summary>public int MinLength{get { return 1; }}/// <summary>/// 生成验证码/// </summary>/// <param name="length">指定验证码的长度</param>/// <returns></returns>public string CreateValidateCode(int length){int[] randMembers = new int[length];int[] validateNums = new int[length];string validateNumberStr = "";//生成起始序列值int seekSeek = unchecked((int)DateTime.Now.Ticks);Random seekRand = new Random(seekSeek);int beginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000);int[] seeks = new int[length];for (int i = 0; i < length; i++){beginSeek += 10000;seeks[i] = beginSeek;}//生成随机数字for (int i = 0; i < length; i++){Random rand = new Random(seeks[i]);int pownum = 1 * (int)Math.Pow(10, length);randMembers[i] = rand.Next(pownum, Int32.MaxValue);}//抽取随机数字for (int i = 0; i < length; i++){string numStr = randMembers[i].ToString();int numLength = numStr.Length;Random rand = new Random();int numPosition = rand.Next(0, numLength - 1);validateNums[i] = Int32.Parse(numStr.Substring(numPosition, 1));}//生成验证码for (int i = 0; i < length; i++){validateNumberStr += validateNums[i].ToString();}return validateNumberStr;}/// <summary>/// 创建验证码的图片/// </summary>/// <param name="containsPage">要输出到的page对象</param>/// <param name="validateNum">验证码</param>public byte[] CreateValidateGraphic(string validateCode){Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 12.0), 24);Graphics g = Graphics.FromImage(image);try{//生成随机生成器Random random = new Random();//清空图片背景色g.Clear(Color.White);//画图片的干扰线for (int i = 0; i < 25; i++){int x1 = random.Next(image.Width);int x2 = random.Next(image.Width);int y1 = random.Next(image.Height);int y2 = random.Next(image.Height);g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);}Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),Color.Blue, Color.DarkRed, 1.2f, true);g.DrawString(validateCode, font, brush, 3, 2);//画图片的前景干扰点for (int i = 0; i < 100; i++){int x = random.Next(image.Width);int y = random.Next(image.Height);image.SetPixel(x, y, Color.FromArgb(random.Next()));}//画图片的边框线g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);//保存图片数据MemoryStream stream = new MemoryStream();image.Save(stream, ImageFormat.Jpeg);//输出图片流return stream.ToArray();}finally{g.Dispose();image.Dispose();}}/// <summary>/// 得到验证码图片的长度/// </summary>/// <param name="validateNumLength">验证码的长度</param>/// <returns></returns>public static int GetImageWidth(int validateNumLength){return (int)(validateNumLength * 12.0);}/// <summary>/// 得到验证码的高度/// </summary>/// <returns></returns>public static double GetImageHeight(){return 22.5;}
}本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2013/04/03/2997859.html,如需转载请自行联系原作者

【转】C#生成验证码相关推荐

  1. python 生成验证码

    import randomfrom PIL import Image, ImageDraw, ImageFont, ImageFilter _letter_cases = "abcdefgh ...

  2. 使用kaptcha生成验证码

    2019独角兽企业重金招聘Python工程师标准>>> kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用k ...

  3. Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed...

    近期在用Python开发自己的博客.须要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,由于我用的是windows. 所以在安装好pil之后就開始写,就依照题目所说出现了Th ...

  4. 生成验证码点击可刷新

    我把生成验证码与生成验证码图片封装成一个静态方法,放到ValidateCode类里 /// <summary> /// 生成验证码的类 /// </summary> publi ...

  5. GDI+ 中发生一般性错误(生成验证码时出现的错误)

    我在生成验证码时,出现这样的错误:GDI+ 中发生一般性错误. 怎么解决? 转载于:https://www.cnblogs.com/happyangle/archive/2008/06/11/1217 ...

  6. Java Web学习总结(22)——使用kaptcha生成验证码

    kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验. 一.搭建测试环境 ...

  7. 转: 通过Servlet生成验证码图片

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)-- 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedIma ...

  8. python制作验证码_Python编写生成验证码的脚本的教程

    在web开发中经常用到验证码,为了防止机器人注册或者恶意登陆和查询等,作用不容小觑 但是验证码其实不是一个函数就能搞定的,它需要生成图片和水印,其实每种语言都有相关的函数生成图片和文字水印.包括我熟悉 ...

  9. Django 生成验证码或二维码 pillow模块

    一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用.   PIL模块只支持到Python 2 ...

最新文章

  1. [故障解决]图文:python启动报错:api-ms-win-crt-runtime-l1-1-0.dll丢失解决
  2. 劲脆鸡米花、鸡排、黄金鸡块
  3. 自动判断浏览器的中英文版本自动跳转网站中英文页面代码
  4. TypeScript里对数组元素的自定义属性排序的实现原理
  5. 前端工程化:围绕Jenkins打造工作流的过程
  6. 【数学】数列(jzoj 2752)
  7. 无法获取计算机名,Spring Cloud常见问题之:无法注册主机名
  8. pytorch迁移学习--模型建立的代码实现
  9. jquery中常见的标题内容之间的切换
  10. python安装包方式汇总
  11. FM信号测试软件,音频测试方案:音频FM指标测试方法
  12. 我看韩剧《寄生虫》,一副好牌究竟是怎么被打烂的?
  13. ds18b20 c语言程序,ds18b20.c
  14. 合理使用计算机教学反思,生物学课堂中采用计算机多媒体的教学反思
  15. 20210327-第一次java笔记
  16. 国际金融学试题及参考答案
  17. 拦截广告的链接(注意软件的广告不拦截,只拦截桌面图标链接)
  18. 通过webSocket实现app产生的数据在网页实时显示
  19. 计算机基本基础知识实训总结,计算机基础实训总结范文
  20. 量子计算机相干性,量子计算机面世不遥远,量子计算机面世不遥远 量子 计算机 相干性 固态 动力学 - 滚动新闻 - 温州网...

热门文章

  1. Puppet客户端自动安装脚本
  2. oracle 禁用外键
  3. SCCM 2007系列7 补丁分发上
  4. .NET 3.5 中WCF客户端代理性能改进以及最佳实践
  5. oracle数据库学习相关笔记-转换函数
  6. python基础之day1
  7. Magento 模版路径
  8. 面向对象的本质是算法的上下文封装,是同一类属的行为接口的一致性
  9. 面向开发者的2018年AI趋势分析
  10. python web 开发框架之Bottle