我正在为自己和工作中的其他人制作批处理水印工具,使用以下代码可以注释图像右下角的文本,但如果不手动调整,我无法让它在左下角进行注释任何给定图像的不同坐标。将 StringAlignment.Far 更改为 StringAlignment.Near 等也不会做任何事情,但可能会在图像之外的某个不显示的地方注释文本。
MSDN 有一些解释,但对我没有帮助。任何帮助都会很棒我已经为此奋斗了一段时间。
private void button1_Click(object sender, EventArgs e)
{
foreach (string images in Directory.GetFiles(textBox1.Text))
{
System.Drawing.Image img = System.Drawing.Image.FromFile(images);
Graphics gr = Graphics.FromImage(img);
Font font = new Font("Times New Roman", (float)25,
System.Drawing.FontStyle.Regular);
System.Drawing.Color color = System.Drawing.Color.Red;
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Far;
stringFormat.LineAlignment = StringAlignment.Far;
gr.SmoothingMode = SmoothingMode.AntiAlias;
gr.DrawString("WATERMARK GOES HERE"+ images, font,
new System.Drawing.SolidBrush(color),
new System.Drawing.Point(img.Width - 0, img.Height - 0),
stringFormat);
MemoryStream outputStream = new MemoryStream();
img.Save(images+"Stamped.jpg");
}
MessageBox.Show("done");
}