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

ASP.NET 實現簡易文字水印圖片生成器

     編輯:關於ASP.NET

核心實作:單一 ASPX 頁面動態繪圖

利用 System.Drawing 在伺服器端繪製文字至圖片並輸出 JPEG 流:

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Page Language="vb" %>
<script runat="server">
Dim FilePath As String = Server.MapPath("Talk.JPG")
Sub Page_Load(Sender As Object, E As EventArgs)
    Dim image As System.Drawing.Image = System.Drawing.Image.FromFile(FilePath)
    Dim g As Graphics = Graphics.FromImage(image)
    g.DrawImage(image, 0, 0, image.Width, image.Height)
    Dim f As Font = New Font("華文行楷", 40)
    Dim b As Brush = New SolidBrush(Color.Black)
    Dim s As String = Left(Request.QueryString("str"), 7)
    g.DrawString(s, f, b, 20, 190)
    image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    g.Dispose()
    image.Dispose()
End Sub
</script>

調用方式

https://localhost/Test.aspx?str=測試一下下!

中文亂碼解決

若中文參數無法顯示,需在 web.config 設定編碼:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" 
        culture="zh-CN" fileEncoding="gb2312"/>
  </system.web>
</configuration>

擴展建議

  • 字體、位置、顏色、背景圖均可參數化。
  • 生產環境建議快取生成圖片,避免重複繪製消耗 CPU。
  • 注意 System.Drawing 在非 Windows 容器環境可能有相容性問題,.NET Core 建議使用 ImageSharp 或 SkiaSharp。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved