使用 System.Drawing 命名空間,將文字浮水印繪製至圖片並儲存為 JPEG,支援字型、顏色、位置、品質參數調整。
' 指定要加浮水印的圖片
Dim img As Image = Image.FromFile(Server.MapPath("~/upload/1.jpg"))
' 建立位圖物件供繪圖 (343x498)
Dim bitmap As New Bitmap(343, 498)
' 字型設定
Dim f As New Font("微軟雅黑", 16, FontStyle.Underline)
' 浮水印文字內容
Dim str As String = TextBox5.Text
' 建立繪圖物件
Dim g As Graphics = Graphics.FromImage(bitmap)
' 線條座標 (TextBox1-4)
Dim x1, x2, y1, y2, s1, s2 As Integer
x1 = CType(TextBox1.Text, Integer)
x2 = CType(TextBox2.Text, Integer)
y1 = CType(TextBox3.Text, Integer)
y2 = CType(TextBox4.Text, Integer)
' 文字座標 (TextBox6-7)
s1 = CType(TextBox6.Text, Integer)
s2 = CType(TextBox7.Text, Integer)
' 繪製原圖至位圖
g.DrawImage(img, 0, 0, 343, 498)
' 繪製浮水印文字 (紅色)
g.DrawString(str, f, Brushes.Red, s1, s2)
' 繪製線條 (白色)
g.DrawLine(Pens.White, x1, x2, y1, y2)
' 儲存路徑與品質設定
Dim iimg As String = "~/upload/11.jpg"
Dim img1 As String = Server.MapPath(iimg)
Dim ep As Imaging.EncoderParameters = New Imaging.EncoderParameters
ep.Param(0) = New Imaging.EncoderParameter(Imaging.Encoder.Quality, CLng(TextBox8.Text))
' 取得 JPEG 編碼器
Dim codecs As Imaging.ImageCodecInfo() = Imaging.ImageCodecInfo.GetImageEncoders
Dim ici As Imaging.ImageCodecInfo
For Each codec As Imaging.ImageCodecInfo In codecs
If codec.MimeType = "image/jpeg" Then ici = codec
Next
' 儲存並顯示
bitmap.Save(img1, ici, ep)
Image1.ImageUrl = iimg
' 釋放資源
g.Dispose(); bitmap.Dispose(); img.Dispose()
Graphics.FromImage 建立繪圖介面DrawString 繪製文字、DrawLine 繪製線條EncoderParameters 設定 JPEG 品質 (0-100)ImageCodecInfo.GetImageEncoders 取得格式編碼器Dispose() 釋放非受控資源