一般處理常式的副檔名為ashx,它實現了IHttpHandler介面,可以響應HTTP請求。我們可以用一般處理常式來動態產生Web映像。
<%@ WebHandler Language="C#" class="CreateImage" %>
using System;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
public class CreateImage : IHttpHandler {
public void ProcessRequest (HttpContext context) {
using (Bitmap img = new Bitmap(100, 25))//執行個體化Bitmap
{
using (Graphics g = Graphics.FromImage(img))//從Bitmap執行個體建立Graphics執行個體
{
g.Clear(Color.Blue);//以藍色填充圖片
Font f = new Font("宋體", 16);
Brush b = new SolidBrush(Color.White);
g.DrawString("寂寞沙洲", f, b, 0, 0);//輸出文字
}
context.Response.Clear();
context.Response.ContentType = "Image/JPEG";//通知瀏覽器發送的資料是JPEG格式的映像
img.Save(context.Response.OutputStream, ImageFormat.Jpeg);//向瀏覽器發送映像資料
context.Response.End();
}
}
// 是否自動緩衝此對象以供下次複用
public bool IsReusable {
get {
return false;
}
}
}
產生的映像
既可以通過瀏覽器以URL來訪問一般處理常式,也可以作為一個映像源被<img>元素所引用:
<img src="CreateImage.ashx" alt="動態產生映像" />