Asp.net(C#)给图片加上水印效果

发表于:2007-06-30来源:作者:点击数: 标签:
下面的代码中,加文字水印和加图片水印的代码不能共存,为了方便显示才写在一块的 private void Btn_Upload_Click(object sender, System.EventArgs e) { if(UploadFile.PostedFile.FileName.Trim()!="") { //上传文件 string extension = Path.GetExtension
     下面的代码中,加文字水印和加图片水印的代码不能共存,为了方便显示才写在一块的
  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.ToString("yyyyMMddhhmmss");
  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);
  }
  }
  
  
  

原文转自:http://www.ltesting.net