ASP.NET给图片加图片水印
类别:编程学习 浏览量:1857
时间:2013-9-19 ASP.NET给图片加图片水印
ASP.NET给图片加图片水印ASP.NET给图片加图片水印代码如下:
using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; /// <summary> /// 图片水印处理方法 /// </summary> /// <param name="path">需要加载水印的图片路径(绝对路径)</param> /// <param name="waterpath">水印图片(绝对路径)</param> /// <param name="location">水印位置(传送正确的代码)</param> public static string ImageWatermark(string path, string waterpath, string location) { string kz_name = Path.GetExtension(path); if (kz_name == ".jpg" || kz_name == ".bmp" || kz_name == ".jpeg") { DateTime time = DateTime.Now; string filename = "" + time.Year.ToString() + time.Month.ToString() + time.Day.ToString() + time.Hour.ToString() + time.Minute.ToString() + time.Second.ToString() + time.Millisecond.ToString(); Image img = Bitmap.FromFile(path); Image waterimg = Image.FromFile(waterpath); Graphics g = Graphics.FromImage(img); ArrayList loca = GetLocation(location, img, waterimg); g.DrawImage(waterimg, new Rectangle(int.Parse(loca[0].ToString()), int.Parse(loca[1].ToString()), waterimg.Width, waterimg.Height)); waterimg.Dispose(); g.Dispose(); string newpath = Path.GetDirectoryName(path) + filename + kz_name; img.Save(newpath); img.Dispose(); File.Copy(newpath, path, true); if (File.Exists(newpath)) { File.Delete(newpath); } } return path; } /// <summary> /// 图片水印位置处理方法 /// </summary> /// <param name="location">水印位置</param> /// <param name="img">需要添加水印的图片</param> /// <param name="waterimg">水印图片</param> private static ArrayList GetLocation(string location, Image img, Image waterimg) { ArrayList loca = new ArrayList(); int x = 0; int y = 0; if (location == "LT") { x = 10; y = 10; } else if (location == "T") { x = img.Width / 2 - waterimg.Width / 2; y = img.Height - waterimg.Height; } else if (location == "RT") { x = img.Width - waterimg.Width; y = 10; } else if (location == "LC") { x = 10; y = img.Height / 2 - waterimg.Height / 2; } else if (location == "C") { x = img.Width / 2 - waterimg.Width / 2; y = img.Height / 2 - waterimg.Height / 2; } else if (location == "RC") { x = img.Width - waterimg.Width; y = img.Height / 2 - waterimg.Height / 2; } else if (location == "LB") { x = 10; y = img.Height - waterimg.Height; } else if (location == "B") { x = img.Width / 2 - waterimg.Width / 2; y = img.Height - waterimg.Height; } else { x = img.Width - waterimg.Width; y = img.Height - waterimg.Height; } loca.Add(x); loca.Add(y); return loca; }
您可能感兴趣
- php 与asp对比(asp.net和php的区别点总结)
- ASP.NET全角与半角相互转换
- asp.net lambda表达式
- ASP.NET生成静态页面的方法
- ASP.NET写文件的方法
- 开源asp.net(apache下支持asp.net的实现方法)
- ASP.NET给图片加图片水印
- ASP.NET中() => 的含义
- ASP.NET中XML和JSON互转
- ASP.NET压力测试
- ASP.NET实现FTP上传文件
- ASP.NET文件打包压缩下载
- ASP.NET泛型约束
- ASP.NET获取网页中的图片
- ASP.NET SignalR是什么
- asp.net 参数化like模糊查询
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
- 今日菜价 椰菜涨幅最高 3.25 ,水空心菜降幅最高 2.58(今日菜价椰菜涨幅最高)
- 今日菜价 红三鱼涨幅最高 4.41 ,黄鳝降幅最高 5.06(红三鱼涨幅最高)
- 今日菜价 西生菜涨幅最高 6.19 ,生菜降幅最高 5.38(西生菜涨幅最高)
热门推荐
- EXEC和sp_executesql的区别
- dockerfile 添加yum文件(使用YUM 安装 docker的方法步骤)
- dedecms添加代码(dedecms获取当前所在栏目ID的方法)
- 宝塔面板服务器设置(宝塔面板解决网站云服务器偶尔出现CPU100%的情况)
- php数据错误处理函数(php中错误处理操作实例分析)
- mysql密码过期怎么改(年底了,你的mysql密码安全吗)
- css3边框讲解(六种css3实现的边框过渡效果)
- sqlserver调试存储过程(sql server2008调试存储过程的完整步骤)
- idea怎么在tomcat部署项目(IDEA 配置Tomcat服务器和发布web项目的图文教程)
- js常见面试题