简单贴一段代码(有些元素已经被定义过,这里不详细定义):
System.Drawing.Image bitmap = System.Drawing.Image.FromFile(picpath);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
string path = Server.MapPath("..");
System.Drawing.Image imagewater;
imagewater = System.Drawing.Image.FromFile(path + "//images//" + Image1.ImageUrl.Substring(Image1.ImageUrl.LastIndexOf("/") + 1));
g.DrawImage(imagewater, 0, 0, imagewater.Width, imagewater.Height);
g.Dispose();
ImageCodecInfo myImageCodecInfo;
System.Drawing.Imaging.Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[1];
myEncoder = System.Drawing.Imaging.Encoder.Quality;
myEncoderParameters = new EncoderParameters(1);
myEncoderParameter = new EncoderParameter(myEncoder, Convert.ToInt64(TextBox2.Text.Trim())); // 0-100
myEncoderParameters.Param[0] = myEncoderParameter;
bitmap.Save(picpath + "1", myImageCodecInfo, myEncoderParameters);
bitmap.Dispose();
System.IO.File.Delete(picpath);
System.IO.File.Move(picpath + "1", picpath);
MyMessageBox.Show(this, "水印添加完毕!");
需要引用的命名空间:
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;