【转】C#生成验证码
使用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#生成验证码相关推荐
- python 生成验证码
import randomfrom PIL import Image, ImageDraw, ImageFont, ImageFilter _letter_cases = "abcdefgh ...
- 使用kaptcha生成验证码
2019独角兽企业重金招聘Python工程师标准>>> kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用k ...
- Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed...
近期在用Python开发自己的博客.须要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,由于我用的是windows. 所以在安装好pil之后就開始写,就依照题目所说出现了Th ...
- 生成验证码点击可刷新
我把生成验证码与生成验证码图片封装成一个静态方法,放到ValidateCode类里 /// <summary> /// 生成验证码的类 /// </summary> publi ...
- GDI+ 中发生一般性错误(生成验证码时出现的错误)
我在生成验证码时,出现这样的错误:GDI+ 中发生一般性错误. 怎么解决? 转载于:https://www.cnblogs.com/happyangle/archive/2008/06/11/1217 ...
- Java Web学习总结(22)——使用kaptcha生成验证码
kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验. 一.搭建测试环境 ...
- 转: 通过Servlet生成验证码图片
孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)-- 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedIma ...
- python制作验证码_Python编写生成验证码的脚本的教程
在web开发中经常用到验证码,为了防止机器人注册或者恶意登陆和查询等,作用不容小觑 但是验证码其实不是一个函数就能搞定的,它需要生成图片和水印,其实每种语言都有相关的函数生成图片和文字水印.包括我熟悉 ...
- Django 生成验证码或二维码 pillow模块
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
最新文章
- [故障解决]图文:python启动报错:api-ms-win-crt-runtime-l1-1-0.dll丢失解决
- 劲脆鸡米花、鸡排、黄金鸡块
- 自动判断浏览器的中英文版本自动跳转网站中英文页面代码
- TypeScript里对数组元素的自定义属性排序的实现原理
- 前端工程化:围绕Jenkins打造工作流的过程
- 【数学】数列(jzoj 2752)
- 无法获取计算机名,Spring Cloud常见问题之:无法注册主机名
- pytorch迁移学习--模型建立的代码实现
- jquery中常见的标题内容之间的切换
- python安装包方式汇总
- FM信号测试软件,音频测试方案:音频FM指标测试方法
- 我看韩剧《寄生虫》,一副好牌究竟是怎么被打烂的?
- ds18b20 c语言程序,ds18b20.c
- 合理使用计算机教学反思,生物学课堂中采用计算机多媒体的教学反思
- 20210327-第一次java笔记
- 国际金融学试题及参考答案
- 拦截广告的链接(注意软件的广告不拦截,只拦截桌面图标链接)
- 通过webSocket实现app产生的数据在网页实时显示
- 计算机基本基础知识实训总结,计算机基础实训总结范文
- 量子计算机相干性,量子计算机面世不遥远,量子计算机面世不遥远 量子 计算机 相干性 固态 动力学 - 滚动新闻 - 温州网...