IHttpHandler的妙用:给图片添加水印.PDFVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IHttpHandler的妙用:给图片添加水印

IHttpHandler的妙用(1):给 图片添加水 印 先给大家看几张熟悉的图片: 上面这些 图片大家不熟悉,不过如果大家 留心一下就会发现每张 图片上都有一些有关 网站 的信息,只不 过第一张和第二张使用 的是 图片,第三张就是文字而 已,这就是所谓 的图片水 印技术, 它一般都是在原有 图片上添加一些 自己的标记(一般是 网站 网址),这样如果别 的网站直接链接使用 的话,则 不可避免带上 了 自己网站 的信息,相当于给 自己网站做 了广告 。 最近本人也做 了一个网站,做一个政府 网站, 网站管理人员发现 以前很多新 闻记者不打招呼就 直接使用他们 的新 闻信息和 图片,他们很恼火,于是要求我给他们 的网站添加上水 印,这样如果别人要用只能 通过正式渠道来 向他们索取而不是从 网站上把 图片存下来 。 一般 的做法是在上传 图片时直接给 图片添加上水 印, 由于我在项 目中使用 了FCKeditor,在上传 时不易 控制, 同时对方还要求他们 自己用 时不能有水 印,于是我就使用 了在 图片显示时动态添加水 印的办法, 另外, 为了提高效率,还使用 了缓存技术,这样不必每次都添加水 印,节省时间和提高性能。 本文 中使用到的类是IHttpHandler(准确地说是一个接 口),m sdn对它 的定义是: “定义 ASP.NET 为 使用 自定义 HTTP 处理程序 同步处理 HTTP Web 请求而实现 的协定 。”HTTP处理程序是实现 了 System.Web.IHttpHandler接 口的.NET组件,任何实现 了IHttpHandler接 口的类都可 以用于处理输入 的 HTTP请求 。也就是每次我们请求网站上 的资源,都会 由这个请求处理,这样就好控制 了。 我 的做法是,实现IHttpHandler接 口, 由实现这个接 口的ImageHandler类专 门处理对 图片资源 的请 求,第一次请求某个 图片时, 由于缓存 中没有,就读取这个 图片,添加上我们指定的水 印( 由web.config设 置指定),然后把输 出到客户端, 同时也把它缓存一定时间,在缓存期 内就再次请求这个 图片就不用添加水 印 了,直接把缓存 中的图片输 出就行 了。 首先我们要编写 自己的类ImageHandler实现IHttpHandler接 口,代码如下: u sing Sy stem ; u sing Sy stem .Web ; u sing Sy stem .Drawing ; u sing Sy stem .Drawing .Imaging ; /// summary /// 说 明:ImageHandler是一个 图片处理类,它能实时在在 图片上添加水 印,避免 自己网站 的图片别 的网站盗用 /// / summary public class ImageHandler :IHttpHandler { public ImageHandler () { // TODO : 在此处添加构造 函数逻辑 } #region IHttpHandler 成员 /// summary /// 指示IHttpHandler 实例是否可再次使用 /// /summary public bool IsReu sable { g et { return tru e; } } /// summary /// 处理请求 的方法 /// /summary /// p aram name= context 它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Requ est 、Resp on se、Session 和 Server)的引用。/p aram public void ProcessRequ est(Http Context context) { //获取请求 的物理 图片路径 string imagePath = context .Requ est .Phy sicalPath ; Bitmap image = null ; i f (context .Cache [imagePath] == null) //如果当前缓存 中没有指定的图片就

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档