IHttpHandler给图片添加水印
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-04-11
string imagePath = context.Request.PhysicalPath; Bitmap image = null; if (context.Cache[imagePath] == null)//如果当前缓存中没有指定的图片就将该图片添加水印并缓存 { image = new Bitmap(imagePath); image = AddWaterMark(image); context.Cache[imagePath] = image; } else//否则就直接从混存中取出添加了水印的图片,节省时间 { image = context.Cache[imagePath] as Bitmap; } image.Save(context.Response.OutputStream, ImageFormat.Jpeg);//将添加水印的图片输入到当前流中 } #endregion //给图片添加水印 private Bitmap AddWaterMark(Bitmap image) { string text = System.Configuration.ConfigurationManager.AppSettings["WaterMark"].ToString(); int fontSize = int.Parse(System.Configuration.ConfigurationManager.AppSettings["Font-Size"].ToString()); Font font = new Font("宋体", fontSize); //Brush brush = Brushes.DarkGray; Brush brush = Brushes.Red; Graphics g = Graphics.FromImage(image); SizeF size = g.MeasureString(text, font); g.DrawString(text, font, brush, image.Width - size.Width, image.Height - size.Height); g.Dispose(); return image; } } 可以把这个类编译成一个单独的dll文件,不过我现在是演示,直接放在了App_Code文件夹下了。 然后我们编写演示文件,这是一个简单的aspx页面(纯html,没有使用任何服务器控件),代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>给图片添加水印的例子——by 周公</title> </head> <body> <form id="form1" runat="server">   |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 防刷新次数增1的解决办法下一篇: .Net下的分布式缓存 - 分布式缓存同步的实现
关于IHttpHandler给图片添加水印的所有评论