利用 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>
System.Drawing 在非 Windows 容器環境可能有相容性問題,.NET Core 建議使用 ImageSharp 或 SkiaSharp。