c#高性能在WEB端产生验证图片

using System;
using System.Web;
using System.Drawing ;
 /// <summary>
 /// Png 的摘要说明。
 public sealed class LocalPng:IHttpHandler    
 {
  #region IHttpHandler 成员  
  
  public  void ProcessRequest(HttpContext context)
  {
   if(context.Request["key"]!=null&&context.Request["key"].Length ==4)//还有ACSSI码是1-9的数字和a-z的字母
   {
    string machine_key=context.Request["key"];
    context.Response.Clear(); 
    try
    {  //原图
     Bitmap sImage = new Bitmap(context.Server.MapPath("key.png.bmp"));   //图片路径  
     //验证码图    
     Graphics wg = Graphics.FromImage(sImage);       
     wg.DrawString(machine_key,new Font("Comic Sans MS",14),new SolidBrush(Color.RoyalBlue),3,0);     
     wg.Save();   
     context.Response.ContentType = "image/Jpeg";
     sImage.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);   
     wg.Dispose();   
     sImage.Dispose();   
    }
    catch(Exception e)
    {context.Response.Write(e.Message);
    }
    context.Response.End();
   
   } 
  }

  public bool IsReusable
  {
   get
   {
    // TODO:  添加 CodeKey.IsReusable getter 实现
    return false;
   }
  }

  #endregion
 }


posted @ 2005-05-11 13:56  OOP  阅读(585)  评论(0编辑  收藏  举报