Build a Web site new generic handler directly paste code:
Using System;
Using System.Collections.Generic;
Using System.Linq;
Using System.Web;
Using System.Web.SessionState;
Using System.Drawing;
Using System.Text;
Using System.Drawing.Imaging;
Namespace Handlerstudy
{
<summary>
Summary description of ImageHandler
</summary>
public class Imagehandler:ihttphandler,irequiressessionstate
{
public void ProcessRequest (HttpContext context)
{
Context. Response.ContentType = "Image/gif";
Bitmap basemap = new Bitmap (200, 60);
Graphics graph = graphics.fromimage (basemap);
Graph. FillRectangle (New SolidBrush (Color.White), 0, 0, 200, 60);
Font font = new Font (FONTFAMILY.GENERICSERIF, fontstyle.bold, GraphicsUnit.Pixel);
Random r = new Random ();
String letters = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String letter = String. Empty;
StringBuilder s = new StringBuilder ();
Add a random five verification code
for (int x = 0; x < 5; × x + +)
{
letter = Letters. Substring (r.next (0, letters. Length-1), 1);
S.append (letter);
Graph. DrawString (letter, font, New SolidBrush (Color.Black), X *, R.next (0, 15));
}
Confusing background
Pen Linepen = new Pen (new SolidBrush (Color.Black), 2);
for (int x = 0; x < 8; × x + +)
{
Graph. DrawLine (Linepen, New Point (R.next (0, 199), R.next (0, N)), New Point (R.next (0, 199), R.next (0, 59));
}
Save the picture to the output stream
Basemap. Save (context. Response.outputstream, imageformat.gif);
Context. session["Checkcode"] = s.tostring ();
Context. Response.End ();
}
public bool IsReusable
{
Get
{
return false;
}
}
}
}
Use this in a Web page:
The effect is as follows: