频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

C#创建简单的验证码

来源:pcdog 作者:佚名 出处:巧巧读书 2008-03-27 进入讨论组
下一页 1 2 

    首先,创建一个CLASS类,然后需要add Reference的方式添加 System.Drawing(画画的类)

    方法代码如下:
    /**//// <summary>
    /// 定义显示的随机字符
    /// </summary>
    /// <param name="strList"></param>
    /// <returns></returns>
    private string imageStr(char[] strList)
        ...{

            if (strList == null)
                strList = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();

            int codeLengh = 4;
            string radomCode = "";
            Random r = new Random();
            for (int i = 0; i < codeLengh;i++)
            ...{
                radomCode += strList[r.Next(strList.Length)];
            }
            return radomCode;
        }

    /**//// <summary>
    /// 创建随机验证字符的IMAGE,并保存,同时返回随机字符串
    /// </summary>
    /// <param name="iWidth">图片宽度 0时,默认为55</param>
    /// <param name="iHeight">图片高度 0时,默认为22</param>
    /// <param name="font">字符字体 null时,默认为 "Arial", 12, FontStyle.Bold</param>
    /// <param name="sb">字符颜色 null时,默认为红</param>
    /// <param name="ImagePath">需要保存的文件绝对路径</param>
    /// <param name="strList">随即字符库 null时,默认为0-9A-Z</param>
    /// <returns>返回随机字符串</returns>
        public string createImgWithStr(int iWidth,int iHeight,Font font,SolidBrush sb ,string ImagePath,char[] strList)
        ...{
            if (font == null)
                font = new Font("Arial", 12, FontStyle.Bold);
            if (sb == null)
                sb = new SolidBrush(Color.Red);
            if (iWidth == 0)
                iWidth = 55;
            if (iHeight == 0)
                iHeight = 22;
            //得到随机字符串
            string imageString = imageStr(strList);
            //定义横向竖向都画4跳线
            int lineCount = 4;
            这2支笔用来画线条的
            Pen pen1 = new Pen(Color.Gold, 1);
            Pen pen2 = new Pen(Color.Black, 2);
    //定义图片
            Bitmap image = new Bitmap(iWidth, iHeight);
            //跟J2ME一样的画笔
            Graphics g = Graphics.FromImage(image);
            //先画背景色 当然你可以自定义下
            g.Clear(ColorTranslator.FromHtml("#F0F0F0"));
            //确定写字的落点
            Rectangle rect = new Rectangle(5, 2, iWidth, iHeight);

            Random r = new Random();

            //默认随机画横向竖向4条线
            for(int i =0;i<lineCount;i++)
            ...{
                Point p1 = new Point(0, r.Next(iHeight));
                Point p2 = new Point(iWidth, r.Next(iHeight));
                Point p3 = new Point(r.Next(iWidth), 0);
                Point p4 = new Point(r.Next(iWidth), iHeight);
                g.DrawLine(pen1, p1, p2);
                g.DrawLine(pen2, p3, p4);
            }
            //写字
            g.DrawString(imageString, font, sb, rect);

进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
较早的文章:c#窗体事件

较新的文章:C#WIN窗体读取EXCEL存入SQL数据库
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章