zoukankan      html  css  js  c++  java
  • 生成验证码图片(含模糊背景)

    首先可以传来一个strCode,这个可以用简单的脚本生成就可以了
    function buildImgCode()
        {
            vImgCode=Math.random().toString(10).substring(2,6);
            document.getElementById("imgCode").src="生成图片的页面.aspx?c="+vImgCode;
        } 


    生成图片的页面:
    this.buildCodeImg(this.Request["c"]);
    private void buildCodeImg(string strCode)
        {
            if(strCode==null||strCode.Trim()==String.Empty||strCode=="")
                return;

            System.Drawing.Bitmap image=new System.Drawing.Bitmap((int)Math.Ceiling((strCode.Length*12.5)),22);
            Graphics g=Graphics.FromImage(image);

            try
            {
                //生成随机生成器
                Random random=new Random();

                //清空图片背景色
                g.Clear(Color.White);

                //画图片的背景噪音线
                for(int i=0;i<25;i++)
                {
                    int x1=random.Next(image.Width);
                    int x2=random.Next(image.Width);
                    int y1=random.Next(image.Height);
                    int y2=random.Next(image.Height);

                    g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2);
                }

                Font font=new System.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold|System.Drawing.FontStyle.Italic));
                System.Drawing.Drawing2D.LinearGradientBrush brush=new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true);
                g.DrawString(strCode,font,brush,2,2);

                //画图片的前景噪音点
                for(int i=0;i<100;i++)
                {
                    int x=random.Next(image.Width);
                    int y=random.Next(image.Height);

                    image.SetPixel(x,y,Color.FromArgb(random.Next()));
                }

                //画图片的边框线
                g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width-1,image.Height-1);

                System.IO.MemoryStream ms=new System.IO.MemoryStream();
                image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
                Response.ClearContent();
                Response.ContentType="image/Gif";
                Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }

  • 相关阅读:
    指针符号的优先级
    逆序链表建立和输出
    typedef关键字编写步骤
    CasePlayer2-嵌入式软件静态解析工具
    嵌入式软件测试工具和测试方法
    单元测试必要性
    基于winAMS、CasePlayer2嵌入式软件单元测试
    嵌入式软件测试软件--winAMS支持芯片
    基于模型开发 Back-to-Back测试统合工具-MC-Verifier
    单元测试工具-winAMS
  • 原文地址:https://www.cnblogs.com/bbxie/p/703579.html
Copyright © 2011-2022 走看看