用C#语言编写随机产生一副图片,求详细代码,急急急,谢谢

解决方案 »

  1.   

    以下代码功能:随机生成一幅有四个字母的验证图片,以及字母的颜色、样式也随机生成,并且图片带有干扰底纹 
    效果:
    建议操作步骤:
     1.在项目中建立一个"rand_img.aspx"文件,并在rand_img.aspx.cs的Page_Load函数中加入以下代码:
         
         Bitmap bp = new Bitmap(62, 20);
                Graphics gh = Graphics.FromImage(bp);
                Random rd = new Random();
                gh.Clear(Color.White);
                for (int i = 1; i <= 50; i++)    //生成干扰底纹
                {
                    int x = rd.Next(0, 61);
                    int y = rd.Next(0, 19);
                    int radius = rd.Next(1, 3);
                    gh.DrawLine(Pens.DimGray, x, y, x + radius, y + radius);
                }
                string outstring;    //生成随机字母
                outstring = Convert.ToChar('a' + rd.Next(0, 26)).ToString(); 
                outstring += Convert.ToChar('a' + rd.Next(0, 26)).ToString();
                outstring += Convert.ToChar('a' + rd.Next(0, 26)).ToString();
                outstring += Convert.ToChar('a' + rd.Next(0, 26)).ToString();
                HttpContext.Current.Session["validate_key"] = outstring;
                Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple };
                string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" };
                int findex = rd.Next(5);
                int cindex = rd.Next(8);
                Font fonts = new Font(font[findex], 14, FontStyle.Bold);
                Brush brush = new SolidBrush(c[cindex]); 
                gh.DrawString(outstring, fonts, brush, 5, -4);
                bp.Save(Response.OutputStream, ImageFormat.Gif);
                bp.Dispose();
                gh.Dispose();
       当然,别忘了加名称空间using System.Drawing和using System.Drawing.Imaging
      
     2.在需要验证图片的页面添加一个img控件,并设置src="rand_img.aspx"