ASP.net实现上传图片加logo图片水印
使用ASP.NET为上传图片加上logo水印,实现起来不是太难,看下面源码:
/// <summary>
/// 加上logo图片水印
/// </summary>
/// <param name="FilePath">源图片地址</param>
/// <param name="SavePath">图片保存路径</param>
public static void AddWaterMark(string FilePath, string SavePath)
{
1 Bitmap bitmap = new Bitmap(FilePath);
2 Graphics g = Graphics.FromImage(bitmap);
3
4 System.Drawing.Image logo = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath("~/images/top/" + ConfigurationManager.AppSettings["WaterMarkLogo"].ToString()));//加载logo图片
5 if (bitmap.Width < logo.Width || bitmap.Height <= logo.Height)
6 return;
7
8 //下面定义一个矩形区域,以后在这个矩形里画上透明背景和白色字体
9 float rectWidth = (float)logo.Width;
10 float rectHeight = (float)logo.Height;
11 float rectX = bitmap.Width - rectWidth;
12 float rectY = bitmap.Height - rectHeight;
13 //声明矩形域
14 RectangleF textArea = new RectangleF(rectX, rectY, rectWidth, rectHeight);
15 g.DrawImage(logo, textArea);
16 MemoryStream ms = new MemoryStream();
17 //保存为Jpg类型
18 bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
19 g.Dispose();
20 bitmap.Dispose();
21 logo.Dispose();
22
23 FileStream fs = new FileStream(SavePath, FileMode.OpenOrCreate);
24 fs.Write(ms.ToArray(), 0, ms.ToArray().Length);
25 fs.Close();
}