龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

ASP.net实现上传图片加logo图片水印

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
使用ASP.NET为上传图片加上logo水印,实现起来不是太难,看下面源码: /// summary /// 加上logo图片水印 /// /summary /// param name="FilePath"源图片地址/param /// param name="SavePath"图片保存路径/para

使用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();
        }

精彩图集

赞助商链接