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

//新建一个网站,在后台代码中引用一个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. python中的内置函数,递归,递归文件显示(二),二分法

    1.部分内置函数 repr()显示出字符串的官方表示形式,返回一个对象的string形式 # repr 就是原封不动的输出, 引号和转义字符都不起作用 print(repr('大家好,\n \t我叫周 ...

  2. 【ocp-12c】最新Oracle OCP-071考试题库(43题)

    43.(9-2)choose three Which three tasks can be performed by DDL statements? A) preventing data retrie ...

  3. LOJ#6044. 「雅礼集训 2017 Day8」共(Prufer序列)

    题面 传送门 题解 答案就是\(S(n-k,k)\times {n-1\choose k-1}\) 其中\(S(n,m)\)表示左边\(n\)个点,右边\(m\)个点的完全二分图的生成树个数,它的值为 ...

  4. SpringAOP的应用实例与总结

    一:AOP的背景 面试的时候面试官让我解释一下什么是AOP,当时不懂,在路上就查了,AOP:面向切面的编程技术,困惑了,JAVA是OOP:面向对象的编程技术.那么自己就立刻查了几个为题:1.什么是面向 ...

  5. Python之scrapy框架之post传输数据错误:TypeError: to_bytes must receive a unicode, str or bytes object, got int

    错误名:TypeError: to_bytes must receive a unicode, str or bytes object, got int 错误翻译:类型错误:to_bytes必须接收u ...

  6. PHP和javascript中url编码解码详解

    在实际开发中,我们可能会遇到路径编码解码的问题,下面总结了一下: PHP中: 1.urlencode(编码),urldecode(解码) $a = urlencode('http://www.baid ...

  7. P4542 [ZJOI2011]营救皮卡丘

    题目链接 题意分析 我们仔细分析一下 发现题目要求用最多\(k\)条路径实现最小权覆盖 首先由于最小路径覆盖针对的是有向图 但是这是一个无向图 所以我们面向对象编程 我们维护一个数组\(d[i][j] ...

  8. SQL Full Join 的 Where条件

    SQL需求是损益视图串资产负债视图 用Excel透视表模拟出来的结果就是 用SQL查询如下: 当Where条件是左边的视图的时候 select 损益视图.年 ,损益视图.年月 ,损益视图.期间 ,损益 ...

  9. BZOJ3168. [HEOI2013]钙铁锌硒维生素(线性代数+二分图匹配)

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3168 题解 首先,我们需要求出对于任意的 \(i, j(1 \leq i, j \leq ...

  10. Scrapyd API的安装

    安装好了Scrapyd之后,我们可以直接请求它提供的API来获取当前主机的Scrapy任务运行状况.比如,某台主机的IP为192.168.1.1,则可以直接运行如下命令获取当前主机的所有Scrapy项 ...