C#编程之C#生成验证码实例
小标 2018-11-14 来源 : 阅读 1667 评论 0

摘要:本文主要向大家介绍了C#编程之C#生成验证码实例,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

本文主要向大家介绍了C#编程之C#生成验证码实例,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

常用生成验证码实例封装:

/// 


/// 生成内存位图
/// 


/// 


/// 


public static Bitmap GetCode(out string Code)
{
    int imgWidth = 80;
    int imgHeight = 40;
    //获取随机字符
    Code = DateTimeHelper.GetCode_Ran(4);
    //颜色列表,用于验证码、噪线、噪点 
    Color[] color = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };
    //字体列表,用于验证码 
    string[] font = { "Times New Roman", "MS Mincho", "Book Antiqua", "Gungsuh", "PMingLiU", "Impact" };

    Bitmap bmp = new Bitmap(imgWidth, imgHeight);
    Graphics g = Graphics.FromImage(bmp);
    g.Clear(Color.White);
    Random rnd = new Random();
    //画噪线 
    for (int i = 0; i < 10; i++)
    {
        int x1 = rnd.Next(imgWidth);
        int y1 = rnd.Next(imgHeight);
        int x2 = rnd.Next(imgWidth);
        int y2 = rnd.Next(imgHeight);
        Color clr = color[rnd.Next(color.Length)];
        g.DrawLine(new Pen(clr), x1, y1, x2, y2);
    }
    //画验证码字符串 
    for (int i = 0; i < Code.Length; i++)
    {
        string fnt = font[rnd.Next(font.Length)];
        Font ft = new Font(fnt, 18);
        Color clr = color[rnd.Next(color.Length)];
        g.DrawString(Code[i].ToString(), ft, new SolidBrush(clr), (float)i * 19, (float)8);
    }
    //画噪点 
    for (int i = 0; i < 100; i++)
    {
        int x = rnd.Next(bmp.Width);
        int y = rnd.Next(bmp.Height);
        Color clr = color[rnd.Next(color.Length)];
        bmp.SetPixel(x, y, clr);
    }
    //显式释放资源 
    // bmp.Dispose();
    g.Dispose();
    return bmp;
}
/// 


/// 生成位图,输出到响应流
/// 


/// 


/// 


public static void GetCode(HttpResponseBase Response, out string Code)
{
    Code = string.Empty;
    Bitmap bit = GetCode(out Code);

    ////清除该页输出缓存,设置该页无缓存 
    //Response.Buffer = true;
    //Response.ExpiresAbsolute = DateTime.Now.AddMilliseconds(0);
    //Response.Expires = 0;
    //Response.CacheControl = "no-cache";
    //Response.AppendHeader("Pragma", "No-Cache");

    Response.ClearContent();
    bit.Save(Response.OutputStream, ImageFormat.Png);
    Response.ContentType = "image/png";

    //释放资源
    bit.Dispose();
}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved