首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET Image Generation 元件:動態產生、轉換與快取圖片的高效方案

     編輯:關於ASP.NET

隨著 ASP.NET 開源生態擴展,CodePlex 上的 ASP.NET Image Generation 專案為 Web 應用提供了強大的伺服器端圖片處理能力:即時產生、轉換、快取圖片,無需手動管理 System.Drawing 繁瑣細節。

核心架構:GeneratedImage 控件 + ImageHandler

  1. 前端:<cc1:GeneratedImage> 控件負責輸出 <img> 標籤,ImageHandlerUrl 指向處理端點。
  2. 後端:繼承 ImageHandler 的 IHttpHandler 實作 GenerateImage 方法,回傳 ImageInfo 物件封裝的 Bitmap。

完整範例:動態文字圖片

Default.aspx

<%@ Register Assembly="Microsoft.Web.GeneratedImage" Namespace="Microsoft.Web" TagPrefix="cc1" %>
<cc1:GeneratedImage ID="GeneratedImage1" runat="server" ImageHandlerUrl="~/TextImageHandler.ashx">
  <Parameters>
    <cc1:ImageParameter Name="Hello" Value="動態文字圖片" />
  </Parameters>
</cc1:GeneratedImage>

TextImageHandler.ashx

public class TextImageHandler : ImageHandler
{
    public TextImageHandler() { ContentType = System.Drawing.Imaging.ImageFormat.Png; }

    public override ImageInfo GenerateImage(NameValueCollection parameters)
    {
        Bitmap bmp = new Bitmap(300, 60);
        using (Graphics g = Graphics.FromImage(bmp))
        {
            g.Clear(Color.AliceBlue);
            g.DrawString(parameters["Hello"], new Font(FontFamily.GenericSansSerif, 16), Brushes.Black, 0, 0);
        }
        return new ImageInfo(bmp);
    }
}

執行效果:動態文字圖片

關鍵優勢

  • 自動快取:依參數雜湊產生 URL,瀏覽器與伺服器雙層快取,極大降低 CPU 壓力。
  • 參數化設計:ImageParameter 支援型別轉換、預設值、驗證,乾淨分離邏輯與呈現。
  • 擴充性:可繼承 ImageHandler 實作水印、縮圖、格式轉換等複雜管線。

需 .NET Framework 3.5 以上,下載:CodePlex 專案頁。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved