using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.IO;
using System.Web.SessionState;//1.添加引用
namespace gdi
{
/// <summary>
/// Handler1 的摘要说明
/// </summary>
public class Handler1 : IHttpHandler,IRequiresSessionState//2.继承接口
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/x-bmp";
Bitmap bmp = new Bitmap(100, 30);//定义新bmp图像
AddPoint(bmp, 100);//增加噪点
string code= addcode(100000, 999999);//获得随机数字
Graphics g = Graphics.FromImage(bmp);
Font f=new Font("宋体",20,FontStyle.Italic);
g.DrawString(code, f, Brushes.Gray, 0, 0);
bmp.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
context.Session["code"] = code;
//context.Response.Clear();
// MemoryStream ms = new MemoryStream();//开辟缓存
// bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
// context.Response.BinaryWrite(ms.ToArray());
// context.Response.Flush();
// context.Response.End();
}
public void AddPoint(Bitmap bmp, int count)//噪点增加函数
{
Random ran=new Random();
for (int i = 0; i < count; i++)
{
bmp.SetPixel(ran.Next(0, bmp.Width), ran.Next(0, bmp.Height), Color.White);
}
}
public string addcode(int i,int j)
{
Random ran = new Random(DateTime.Now.Millisecond);
return ran.Next(i, j).ToString();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}