asp.net在图片上添加水印效果的代码示例

发布时间:2019-08-15编辑:脚本学堂
本文介绍下,asp.net中为图片添加水印效果的一个例子,有需要的朋友,参考下吧。

实现:
为图片加上水印效果。

要注意的是,文字水印和图片水印的代码要分开来写,本文为了演示需要,放在一起了,大家在实际使用时,记得把代码分开就可以了。

代码如下:

//添加水印效果到图片上
//edit by www.jb200.com
private void Btn_Upload_Click(object sender, System.EventArgs e)
{
if(UploadFile.PostedFile.FileName.Trim()!="")
 {
 //上传文件
 string extension = Path.GetExtension(UploadFile.PostedFile.FileName).ToUpper();
 string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() +
 DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
 string path = Server.MapPath(".") + "/UploadFile/" + fileName + extension;
 UploadFile.PostedFile.SaveAs(path);

 //加文字水印,注意,此处代码与下面加图片水印的代码不能共存
 System.Drawing.Image image = System.Drawing.Image.FromFile(path);
 Graphics g = Graphics.FromImage(image);
 g.DrawImage(image, 0, 0, image.Width, image.Height);
 Font f = new Font("Verdana", 32);
 Brush b = new SolidBrush(Color.White);
 string addText = AddText.Value.Trim();
 g.DrawString(addText, f, b, 10, 10);
 g.Dispose();

 //加图片水印
 System.Drawing.Image image = System.Drawing.Image.FromFile(path);
 System.Drawing.Image copyImage = System.Drawing.Image.FromFile( Server.MapPath(".") + "/Alex.gif");
 Graphics g = Graphics.FromImage(image);
 g.DrawImage(copyImage, new Rectangle(image.Width-copyImage.Width, image.Height-copyImage.Height, copyImage.Width, copyImage.Height),
 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
 g.Dispose();

 //保存加水印过后的图片,删除原始图片
 string newPath = Server.MapPath(".") + "/UploadFile/" + fileName + "_new" + extension;
 image.Save(newPath);
 image.Dispose();
 if(File.Exists(path))
 {
     File.Delete(path);
 }

 Response.Redirect(newPath);
}
}