制作验证码.也可以画弧线之类.....

//新建一个网站,在后台代码中引用一个using Stystem.Drawing的命名空间

        Bitmap img = new Bitmap(, ); //制作一个宽100,高50的画板
Graphics g = Graphics.FromImage(img); //画出背景图
List<Color> clist = new List<Color>();//制作一个新的颜色集合
clist.Add(Color.Red);//制作一个个的颜色内容
clist.Add(Color.Yellow);
clist.Add(Color.Blue);
clist.Add(Color.Green);
clist.Add(Color.Aqua);
clist.Add(Color.Orange);
clist.Add(Color.Pink);
//验证码内容
Random r = new Random();// 创作一个随机数
string ss = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; //写下所有关于验证码的数字跟字母
string s = ""; //写一个空的字符串
//防止字颜色与背景颜色重复
Color bkcolor = clist[r.Next(, clist.Count)];//挑选一个随机的颜色
clist.Remove(bkcolor);//删除掉这个颜色
g.FillRectangle(new SolidBrush(bkcolor), , , , ); //设置背景颜色
for (int i = ; i < ; i++)
{
s += ss[r.Next(, ss.Length)]; //用for循环从ss中挑选4个验证码随机数
}
Font f = new Font("微软雅黑", ); //设置字体大小
Brush b = new SolidBrush(clist[r.Next(, clist.Count)]); //用上面写的随机颜色定义一个字体颜色
g.DrawString(s, f, b, , ); //画出验证码
Session["YZM"] = s; //设置一个全局验证码.用来验证是否正确
for (var i = ; i < ; i++)
{
Pen pp = new Pen(new SolidBrush(clist[r.Next(, clist.Count)]), r.Next(, )); //设置一个随机颜色的画笔
Point p1 = new Point(r.Next(, ), r.Next(, )); //设置干扰线条的长短
Point p2 = new Point(r.Next(, ), r.Next(, )); //设置第二个干扰线条的长短
g.DrawLine(pp, p1, p2); //画线
}
img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); //画出这一张验证码

忘了写怎么用了

在新建一个网站

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>//用来验证图片里面的验证码
<img id="imgyzm" src="YZM.aspx" />//这个就是刚刚制作好的验证码
<asp:Button ID="Button1" runat="server" Text="验证" /> // 只是一个验证按钮
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>//用来显示是否正确

在这个新建网站后台只需要写一个Button1的点击事件即可

 if (TextBox1.Text.ToUpper() == Session["YZM"].ToString().ToUpper())
Label1.Text = "OK";
else
Label1.Text = "错误!!!!!!";

C#图片验证码绘制的更多相关文章

  1. android图片验证码--自绘控件

    自绘控件的内容都是自己绘制出来的 大致流程如下: 1.定义一个类继承view 使用TypedArray初始化属性集合 在view的构造方法中 有一个AttributeSet的参数 很明显是用来保存控件 ...

  2. Android-简单的图片验证码

    Android-图片验证码生成1.为啥要验证码?图片验证码在网络中使用的是比较普遍的.一般都是用来防止恶意破解密码.刷票.论坛灌水.刷页等.2.怎样的验证码比较好?验证码的获取方式无非就两种,一种是后 ...

  3. 在mvc中实现图片验证码的刷新

    首先,在项目模型(Model)层中建立一个生成图片验证码的类ValidationCodeHelper,代码如下: public class ValidationCodeHelper { //用户存取验 ...

  4. PHP编写的图片验证码类文件分享方法

    适用于自定义的验证码类! <?php/* * To change this license header, choose License Headers in Project Propertie ...

  5. 纯JS实现图片验证码功能并兼容IE6-8

    最近要搞一个图片验证码功能,但是又不想自己写后台代码.于是自己准备搞一个纯前端的验证码功能,于是网上搜索了一下,找到一个插件gVerify.js,简单好用,实现完美.不过后面接到说要兼容IE8,想想也 ...

  6. 基于spring mvc的图片验证码实现

    本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...

  7. 图片验证码(Struts2中使用)

    写在前面: 最近在项目中做了一个登录页面,用到了图片验证码的功能,所以记录一下.方便之后再有用到,直接拿来用即可.其实图片验证码的生成都是有固定步骤的,网上也有很多的例子,有的时候,如果不想深究,都是 ...

  8. asp.net core 图片验证码,后台验证

    验证方法: public static string VerificationCodeCacheFormat="vcode_cache_{0}"; public IActionRe ...

  9. RESTful API格式 图片验证码接口

    之前公司写图片验证码时用的是session 后来写接口时也想用session存验证码  不过领导说RESTful API 写接口 没有session这一说 于是就用了redis 存验证码 还有就是接口 ...

随机推荐

  1. “全栈2019”Java异常第四章:catch代码块作用域详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  2. AngularJS源码解析2:注入器的详解

    上一课,没有讲createInjector方法,只是讲了它的主要作用,这一课,详细来讲一下这个方法.此方法,最终返回的注册器实例对象有以下几个方法: invoke, instantiate, get, ...

  3. Linux动态库的导出控制

    在实际工作中,许多软件模块是以动态库的方式提供的.做为模块开发人员,我们不仅要掌握如何编写和构建动态库,还要了解如何控制动态库的导出接口,这样,我们可以向模块的用户仅导出必要的接口,而另一些内部接口, ...

  4. git简易入门(github)

    本文讲解下git的使用,包括使用git上传项目工程到github,以及错误解决. 1.安装git 使用apt-get安 sudo apt-get update sudo apt-get install ...

  5. OO第二单元の小结

    第二单元(线程与电梯问题)总结博客 三次作业的设计策略 第一次:本次作业只有一部电梯,而且不用捎带.因此,我一共设计了两个线程:一个负责管理输入,一个负责电梯运行.同时,我将调度队列设置为单例模式,里 ...

  6. P4859 已经没有什么好害怕的了

    传送门 见计数想容斥 首先题目可以简单转化一下, 求 糖果比药片能量大的组数比药片比糖果能量大的组数多 $k$ 组 的方案数 因为所有能量各不相同,所以就相当于求 糖果比药片能量大的组数为 $(n+k ...

  7. [转] Actor生命周期理解

    [转] https://blog.csdn.net/wsscy2004/article/details/38875065 镇图:Actor内功心法图 Actor的生命周期可以用Hooks体现和控制,下 ...

  8. 在windows上添加cygwin右键

    来了一台新机器,装环境的时候,突然想直接在右键使用cygwin. 查了一些教程,基本大同小异,也算是有用,先贴一个链接: https://blog.csdn.net/yang_hong_/articl ...

  9. 下载windows版本apache网页服务器

    1.进入apache服务器官网http://httpd.apache.org/,这里我们以下载稳定版的httpd 2.4.25为例,点击download. 2.点击链接Files for Micros ...

  10. 用maven来创建scala和java项目代码环境(图文详解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆适用)(博主推荐)

    不多说,直接上干货! 为什么要写这篇博客? 首先,对于spark项目,强烈建议搭建,用Intellij IDEA(Ultimate版本),如果你还有另所爱好尝试Scala IDEA for Eclip ...