Will's Blog

世上没有陌生人,只有还没有来得及认识的朋友
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用一般处理程序(IHttpHandler)制作图片水印

Posted on 2009-06-21 22:17  佟伟  阅读(4239)  评论(14编辑  收藏  举报

     根据大家的意见,教程加入了关于透明的处理。

      做网站的时候经常需要将图片加上网站名称的水印。这样做可以使别人转载图片的时候出现图片出处,利于网站宣传。但是如果利用ps来一个一个加水印工作量非常浩大,而且修改了之后就没法还原。这篇教程教大家利用一般处理程序(Handler)制作图片水印,这种水印的优点是一经修改全站适用,而且不改变原来的图片。

      制作水印分为两种方法,一种是利用局部Handler,另一种是利用全局Handler。前者可以灵活的选择文件夹内的图片是否都加水印,但印。为了节省篇幅Handler的教程就不写了。是每次做链接的时候都要加入Handler地址,不利于整体修改。而后者是指定文件夹里的图片都加水印。

一、局部Handler:

1.在aspx页面中写入

 <asp:Image ID="Image1" runat="server" ImageUrl="~/MyBookHandler.ashx?imagename=book1" />

这句话加入一个Image服务器控件,图片地址指向~/MyBookHandler.ashx?imagename=book1。也就是根目录下的MyBookHandler.ashx。(其中imagename为图片名)

2.添加一般处理程序MyBookHandler.ashx。

 

 

MyBookHandler

这样当Image控件访问Handler的时候就可以输出图片了。

二、全局Handler:

在aspx里面输入<asp:Image ID="Image1" runat="server" ImageUrl="image/book1.jpg" /> 就可以了。不需要请求Handler。然后在项目中单击右键添加新项,选择类。然后输入如下代码:

 

 

 

 

 

MyBookMark 的摘要说明

跟局部Handler一样就不写说明了。

为了能触发这个Handler需要在web.config文件的<httpHandlers>配置节里面输入如下信息。

 <add verb="*" path="image/*.jpg" type="MyBookMark"/>

这样当请求为image/*.jpg的时候就转到MyBookMark这个Handler中处理了。同样也输出带水印的图片。