ASP.NET给图片加文字水印
类别:编程学习 浏览量:525
时间: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="size">字体大小</param> /// <param name="letter">水印文字</param> /// <param name="color">颜色</param> /// <param name="location">水印位置</param> public static string LetterWatermark(string path, int size, string letter, Color color, 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); Graphics gs = Graphics.FromImage(img); ArrayList loca = GetLocation(location, img, size, letter.Length); Font font = new Font("宋体", size); Brush br = new SolidBrush(color); gs.DrawString(letter, font, br, float.Parse(loca[0].ToString()), float.Parse(loca[1].ToString())); gs.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="width">宽(当水印类型为文字时,传过来的就是字体的大小)</param> /// <param name="height">高(当水印类型为文字时,传过来的就是字符的长度)</param> private static ArrayList GetLocation(string location, Image img, int width, int height) { ArrayList loca = new ArrayList(); //定义数组存储位置 float x = 10; float y = 10; if (location == "LT") { loca.Add(x); loca.Add(y); } else if (location == "T") { x = img.Width / 2 - (width * height) / 2; loca.Add(x); loca.Add(y); } else if (location == "RT") { x = img.Width - width * height; } else if (location == "LC") { y = img.Height / 2; } else if (location == "C") { x = img.Width / 2 - (width * height) / 2; y = img.Height / 2; } else if (location == "RC") { x = img.Width - height; y = img.Height / 2; } else if (location == "LB") { y = img.Height - width - 5; } else if (location == "B") { x = img.Width / 2 - (width * height) / 2; y = img.Height - width - 5; } else { x = img.Width - width * height; y = img.Height - width - 5; } loca.Add(x); loca.Add(y); return loca; }
您可能感兴趣
- ASP.NET将Excel数据导入到数据库
- ASP.NET服务器端执行脚本的通用方法
- ASP.NET中Server对象的用法
- ASP.NET Web API中参数的传递
- ASP.NET常用加密解密方法
- asp.net判断上传文件格式
- 如何注册asp.net 4.0 到iis
- asp.net后台输出js脚本
- ASP.NET如何获取上传图片的宽和高
- ASP.NET给图片加图片水印
- Asp.net中params的使用
- ASP.NET网站的404错误页面的设置
- asp.net把word文档转换成pdf
- ASP.NET中使用CodeDomProvider调用js文件中的js方法
- ASP.NET下载远程图片到本地
- ASP.NET中TimeSpan的用法
- 《庆余年2》新消息,原班人马,肖战特别出演,这才是最好的安排(庆余年2新消息原班人马)
- 宁夏灵武恐龙化石发现始末(宁夏灵武恐龙化石发现始末)
- 到了岁末 临门一脚 节点,天台综合督评会目标直指 全年红(到了岁末临门一脚)
- 寒假余额不满24小时,不如来一场说走就走的亲子阅读之旅(寒假余额不满24小时)
- 省委书记出席的交流会,十位县委书记同场发言,代表公文材料的高水平(省委书记出席的交流会)
- 《刘老根3》热播,去世15年的她却再次被 伤害(去世15年的她却再次被)
热门推荐
- Chrome谷歌浏览器开发者工具中Profiles的使用
- php静态类和动态类的区别(PHP Trait代码复用类与多继承实现方法详解)
- 宝塔面板端口一般设置多少合适(宝塔面板设置了防盗链不生效如何解决)
- vue的弹框怎么用(vue自定义弹框效果确认框、提示框)
- python动态数组原理(Python实现的旋转数组功能算法示例)
- 织梦联动菜单的下拉代码(dede5.7 动态导航下拉菜单的实现代码)
- mysql慢日志设置多少合适(MySQL慢查询日志的作用和开启)
- python pyqt 教程(Python+PyQt5实现美剧爬虫可视工具的方法)
- ASP.NET给图片加文字水印
- mysql 查询语句group by用法(MySQL group by和order by如何一起使用)