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给图片加文字水印
- ASP.NET生成二维码
- asp.net使用swfupload上传
- ASP.NET私有构造函数作用
- 如何注册asp.net 4.0 到iis
- Asp.net操作Word文档
- asp.net去除字符串中html标签
- ASP.NET函数返回多个值的几种方法
- Asp.Net实现网站的快捷方式
- asp.net中使用ueditor
- docker 部署netcore(关于Jenkins + Docker + ASP.NET Core自动化部署的问题避免踩坑)
- ASP.NET使用JavaScriptSerializer实现序列化与反序列化
- ASP.NET实现FTP上传文件
- 开源asp.net(apache下支持asp.net的实现方法)
- 爱情可以当饭吃吗(怎么回复)
- 高考数学题(高考数学题基础题占多少分)
- 没钱只能吃土(没钱要吃土了幽默短信发朋友圈)
- 今年考高会很难吗(今年高考会考试吗)
- 盘古开天地 他创造了世界,谁创造了盘古 盘古是伏羲吗(盘古开天地他创造了世界)
- 关于队徽 你了解这些么 二(关于队徽你了解这些么)
热门推荐
- pythonhash使用(详解python中的hashlib模块的使用)
- mysql的连接池名称如何查看(如何使用mysqladmin获取一个mysql实例当前的TPS和QPS)
- dedecms搜索功能的实现(让DEDECMS自动内链起来的实现方法)
- python生成效果图(python如何制作缩略图)
- 如何用tomcat部署web项目(一文搞懂如何部署启动多个tomcat并移植项目)
- laravelblade组件(laravel 验证错误信息到 blade模板的方法)
- dedecms 标签通用(DEDECMS标签循环调用 去掉最后一个循环符号的代码)
- win7redis安装教程(Docke中安装redis的方法)
- vue轮播图代码(vue实现无缝轮播效果跑马灯)
- position零基础入门(position:sticky 粘性定位的几种巧妙应用详解)