VB.NET实现给图片添加文字水印
通过vb.net给选定的图片添加文字水印,添加的文字从文本文档中获取,可以一次给相同的图片添加不同的文字水印,并以添加的文字命名图片;
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class 给图片添加文字水印
Dim MyImage As Image
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
OpenFileDialog1.Filter = "图像文件(JPeg,Gif,Bmp,etc.)|*.jpg;*.jpeg;*.gif; *.bmp; *.png| JPeg 文件 (*.jpg;*.jpeg)|*.jpg;*.jpeg |GIF 文件 (*.gif)|*.gif |BMP 文件 (*.bmp)|*.bmp|Png 文件 (*.png)| *.png |所有文件(*.*)|*.*"
If (OpenFileDialog1.ShowDialog() = DialogResult.OK) Then
Label1.Text = OpenFileDialog1.FileName
PictureBox1.Image = Image.FromFile(Label1.Text)
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If (FolderBrowserDialog1.ShowDialog() = DialogResult.OK) Then
Label2.Text = FolderBrowserDialog1.SelectedPath + "\"
End If
End Sub
Sub draw1(ByVal str)
MyImage = Image.FromFile(label1.text)
Dim g = Graphics.FromImage(MyImage)
Dim MyFont = New Font("宋体", 60)
Dim MyBrush As New SolidBrush(Color.FromArgb(0, 0, 0))
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.GammaCorrected
g.DrawString(str, MyFont, MyBrush, Int(MyImage.Width / 2), Int(MyImage.Height / 2))
PictureBox1.Image = MyImage
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Try
Dim filePath As String = "name.txt"
If Label1.Text <> "原图片路径:" Then
If Label2.Text <> "保存路径:" Then
Dim fileLines() As String = IO.File.ReadAllLines(filePath, System.Text.Encoding.Default)
For Each sql1 As String In fileLines
Call draw1(sql1)
Dim savePath As String = Trim(Label2.Text) + sql1
Call savePicture(savePath)
MsgBox(savePath)
PictureBox1.Refresh()
Next
Label3.Text = "操作成功"
Else
Label3.Text = "没有选择保存路径"
End If
Else
Label3.Text = "没有选择原图片路径"
End If
Catch ex As Exception
Label3.Text = "当前路径下的name.txt文件不存在"
End Try
End Sub
Sub savePicture(ByVal str)
MyImage.Save("" & str & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
End Class
截图
首先选择要添加水印的图片,指定一个保存路径,直接添加
可以一次完成所有任务