1 public static string MakeCode(int Num)
 2        {
 3            string[] textArray1 = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z".Split(new char[] ',' });
 4            string text2 = string.Empty;
 5            int num1 = 0;
 6            Random random1 = new Random();
 7            for (int num2 = 1; num2 <= Num; num2++)
 8            {
 9                num1 = random1.Next(0,textArray1.Length);
10                text2 = text2 + textArray1[num1];
11            }

12            return text2;
13        }

14        /// <summary>
15        /// 
16        /// CREATE DATA 2007/7/2
17        /// MODIFY DATA 2007/7/2
18        /// AUTOR:SP
19        /// METHOD:生成带有图片的验证码
20        /// </summary>
21        /// <param name="Str">接收验证码的四个字符</param>

22
23        public static void MakeImg(string Str)
24        {
25            MemoryStream stream1 = new MemoryStream();
26            int num1 = Convert.ToInt32((double)(Str.Length * 11.5));
27            int num2 = 20;
28            Bitmap bitmap1 = new Bitmap(num1, num2);
29           
30
31            Graphics graphics1 = Graphics.FromImage(bitmap1);
32
33            Color[] colorArray3 = new Color[] { Color.LightSkyBlue};//代表背景色
34            Color[] colorArray1 = new Color[] { Color.Red };
35            //colorArray3 = new Color[] { Color.LimeGreen, Color.LightCoral, Color.LightCyan, Color.LightGoldenrodYellow, Color.LightGray, Color.LightGreen, Color.LightPink, Color.LightSalmon, Color.LightSeaGreen, Color.LightSkyBlue, Color.LightYellow };
36            Color[] colorArray2 = colorArray3;
37            Random random1 = new Random();
38            Pen pen1 = new Pen(Color.LightGray, 0f);//代表图片的背景色
39            int num3 = 20;
40            for (int num4 = 0; num4 < num3; num4++)
41            {
42                pen1 = new Pen(colorArray2[random1.Next(1)], 0f);
43                Point point1 = new Point(random1.Next(num1), random1.Next(num2));
44                Point point2 = new Point(random1.Next(num1), random1.Next(num2));
45                Point point3 = new Point(random1.Next(num1), random1.Next(num2));
46                Point point4 = new Point(random1.Next(num1), random1.Next(num2));
47                graphics1.DrawBezier(pen1, point1, point2, point3, point4);
48            }

49            string text1 = string.Empty;
50            int num5 = 2;
51            for (int num6 = 0; num6 < Str.Length; num6++)
52            {
53                text1 = Str.Substring(num6, 1);
54                graphics1.DrawString(text1, new Font("Arial", 12f, FontStyle.Regular), new SolidBrush(colorArray1[random1.Next(1)]), (float)num5, 2f);
55             //   graphics1.DrawString(text1, new Font("Arial", 12f, FontStyle.Regular), new SolidBrush(Color.Blue),(float)num5,2f);
56                num5 += 10;
57            }

58            bitmap1.Save(stream1, ImageFormat.Png);
59            HttpContext.Current.Response.ClearContent();
60            HttpContext.Current.Response.ContentType = "image/Png";
61            HttpContext.Current.Response.BinaryWrite(stream1.ToArray());
62            graphics1.Dispose();
63            bitmap1.Dispose();
64            HttpContext.Current.Response.End();
65        }
posted on 2007-07-11 16:50  阳春  阅读(164)  评论(0)    收藏  举报