Net生成手机号码图片

之前在58.com里面发布分类信息时,看到他的手机号码是用图片形式出现的,虽然这跟验证码的原理应该差不多,但还是觉得有点好奇, 我想是应该用System.Drawing里面的东西可以整出来的吧,于是就整了一下,还是很容易的,发出来给大家共享.[em13]

做得简单,在实际运用中应该需要将所有封装成一个object最好,但是实现了效果,装箱就应该很Easy啦,废话少说
文件:





开发环境:Win2003+Vs.Net2005

前台.Default.aspx的HTML界面,用的是:

一个文本框控件:TextBox : txtCellPhone
一个按钮控件: Button1
两个验证控件: 其中一个是RequiredFieldValidator,用于验证文本框是否输入值,一个是正则表达式验证控件,验证输入的手机号码是否符合要求(小灵通被偶T出克了),值得一提的是:
用于验证手机号码的正则表达式是: [1]{1}[3|5]{1}\d{9}(,[1]{1}[3|5]{1}\d{9})*$

其它的就没有什么啦

再看看实现的核心函数,关键的地方偶都做了详细的注释,大家仔细看一下吧.



using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;//包含所有用于创建位图和绘制对象的基础类
using System.Drawing.Imaging;//包含所有处理不同图片格式的高级类
using System.Drawing.Text;//包含处理不同字体的类


///
/// Design: Dezai
/// Function:Generate CellPhoneImage
/// PubDate:2007-6-17
///

public class BLL
{
    public BLL()
    {
    


    }

    ///
    /// 生成手机号的函数
    ///

    /// 手机号码
    public void GeneratePic(string MobileNo)
    {

        Bitmap objBitmap = new Bitmap(140,25);//创建位图

        Graphics objGraphics = Graphics.FromImage(objBitmap); //创建Graphic类

        objGraphics.Clear(Color.LimeGreen);//设置图片的背景色

        Font objFont = new Font("Arail", 14);//设置文字的背景色


        objGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;


        objGraphics.DrawString(MobileNo, objFont, Brushes.Yellow,2,5);


        objBitmap.Save(System.Web.HttpContext.Current.Response.OutputStream, ImageFormat.Jpeg); //图片保存到Response对象的输出流,并在前台输出

        


    }
    
}



得到的结果如图:


首页:


结果:




这只是一个简单的实现,如果要做到像验证码那样,就可以通过使用System.drawing里面Graphic类中的相关属性来对背景或所产生的图片进行相关的设定,做到越复杂越好,这样才能避免相关的垃圾收集器把你的号码被采集.当然,这是后话,我会找个机会,将这个东东完善:)[em13]

完整源代码下载:(下载了不看请不要下载,不要浪费您的硬盘空间,谢谢^_^)下载文件 点击下载此文件

欢迎大家与我一起探讨,请多多指教.


上一篇: 刨到的一段JS代码
下一篇: SQL存储过程中传入参数实现任意字段排序
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 30432
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 30 字 | UBB代码 关闭 | [img]标签 关闭