<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.SessionState;
public class Handler : IHttpHandler,IRequiresSessionState {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "image/jpeg";
Random rand = new Random(DateTime.Now.Millisecond*1000000);
String[] list = { "2", "3", "5", "6", "A", "f", "h", "j", "q", "v","B","P" };
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 4; i++)
{
sb.Append(list[rand.Next(0, list.Length)]);
}
String number=sb.ToString();
context.Session["number"] = number.ToLower();
Image image = new Bitmap(number.Length * 30,40);
Font f=new Font("黑体",30);
Brush b=new SolidBrush(Color.White);
Graphics g = Graphics.FromImage(image);
g.Clear(Color.Black);
g.DrawString(number, f, b, 4, 4);
g.DrawRectangle(new Pen(Color.Yellow,1),1,1,image.Width-3,image.Height-3);
for (int i = 0; i < 20; i++)
{
Pen p = new Pen(Color.FromArgb(rand.Next(50, 255),rand.Next(50,255),rand.Next(50,255)));
int x1 = rand.Next(1,image.Width);
int y1 = rand.Next(1,image.Height);
int x2 = rand.Next(1,image.Width);
int y2 = rand.Next(1,image.Height);
g.DrawLine(p,x1,y1,x2,y2);
}
image.Save(context.Response.OutputStream,ImageFormat.Jpeg);
image.Dispose();
g.Dispose();
}
public bool IsReusable {
get {
return false;
}
}
}