回 帖 发 新 帖 刷新版面

主题:怎样给自己网站上的图片加水印

好久没有来提问了。想问一下,怎样给自己网站上的图片加上水印。

回复列表 (共3个回复)

沙发

用aspjpg组件,可以加文字、图片水印方便简单,唯一缺点就是要在服务器上注册该组件,使用详细教程请在网上搜索

板凳


我也想知道这个技术是怎么实现的

3 楼


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);
  }
  }
下面的代码中,加文字水印和加图片水印的代码不能共存,为了方便显示才写在一块的 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); } }

我来回复

您尚未登录,请登录后再回复。点此登录或注册