HttpHandler

<img src="imagegen.ashx?shape=circle&color=red">
<httpHandlers>
  <add verb="*" path="ImageGen.ashx" type="ImageGen, DynaImageLib" />
</httpHandlers>

When an HTTP request arrives for ImageGen.ashx, ASP.NET instantiates ImageGen and passes it the request. Assuming ImageGen is an image generator, it responds by creating an image and returning it in the HTTP response. Here’s a generic template for an HTTP handler that creates an image in memory and returns it to the requestor as a JPEG. The hard part—building the image and writing it out to the HTTP response as a JPEG-formatted bit stream—is vastly simplified by the FCL’s Bitmap and Graphics classes:

public class ImageGen : IHttpHandler
{
    public void ProcessRequest (HttpContext context)
    {
        // Create a bitmap that measures 128 pixels square
        Bitmap bitmap = new Bitmap (128, 128,
            PixelFormat.Format32bppArgb);

        // Create a Graphics object for drawing to the bitmap
        Graphics g = Graphics.FromImage (bitmap);

        // TODO: Use Graphics methods to draw the image
          .
          .
          .
        // Set the response's content type to image/jpeg
        context.Response.ContentType = "image/jpeg";

        // Write the image to the HTTP response
        bitmap.Save (context.Response.OutputStream, ImageFormat.Jpeg);

        // Clean up before returning
        bitmap.Dispose ();
        g.Dispose ();
    }

    public bool IsReusable
    {
        // Returning true enables instances of this class to be
        // pooled and reused. Return false if ImageGen instances
        // should NOT be reused.
        get { return true; }
    }
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值