WEB开发网
开发学院软件开发C语言 C#基础回顾:用GDI+绘制验证码 阅读

C#基础回顾:用GDI+绘制验证码

 2009-03-13 08:19:14 来源:WEB开发网   
核心提示: 上面有一个RandomGeneratorStyle,这个是我自己写的一个枚举,C#基础回顾:用GDI+绘制验证码(2),用于表示需要生成哪种验证码,RandomGeneratorStylepublicenumRandomGeneratorStyle{///<summary>//

上面有一个RandomGeneratorStyle,这个是我自己写的一个枚举,用于表示需要生成哪种验证码。

RandomGeneratorStyle

public enum RandomGeneratorStyle
{
    /// <summary>
    /// 只有数字
    /// </summary>
    Number,
    /// <summary>
    /// 包含数字和大小写字符
    /// </summary>
    NumberAndChar,
    /// <summary>
    /// 包含数字和大写字符
    /// </summary>
    NumberAndCharIgnoreCase
}

2.有了这些数,那下面就基本上考你是画画的功夫了。当然这里用到的不是颜料、水彩笔等,而是要用GDI+。

平时,我们看见的验证码是什么样式子的?是不是一个矩形?矩形里面有一些随机数?那接下去要做的就是用GDI+技术把生成的随机数画到一个矩形中。

这个要用到的主要的就只有一个方法:Graphics.DrawString();不了解的朋友可以先去网上查查关于这个方法的介绍。下面直接来看代码:

绘制验证码

public static void Generate(RandomGeneratorStyle style, int length,Page curPage)
{
    Bitmap bmp = new Bitmap((int)Math.Ceiling(length * 12.5), 20);//新建一个图片对象
    Graphics g = Graphics.FromImage(bmp);//利用该图片对象生成“画板”
    string strCode = RandomGenerator.Generate(style, length);//生成随机数
    curPage.Session["yzmCode"] = strCode;//保存到Session中,为验证服务.你也可以存放在其它地方,只要在需要验证的时候你能取到
    Font font = new Font("Arial", 12, FontStyle.Bold | FontStyle.Italic);//设置字体颜色
    SolidBrush brush = new SolidBrush(Color.White);//新建一个画刷,到这里为止,我们已经准备好了画板、画刷、和数据
    g.DrawString(strCode, font, brush, 0, 0);//关键的一步,进行绘制。
    bmp.Save(curPage.Response.OutputStream, ImageFormat.Jpeg);//保存为输出流,否则页面上显示不出来
    g.Dispose();//释放掉该资源
}

Tags:基础 回顾 GDI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接