Will's Blog

世上没有陌生人,只有还没有来得及认识的朋友
随笔 - 5, 文章 - 0, 评论 - 24, 阅读 - 11143
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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

Posted on   佟伟  阅读(4244)  评论(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中处理了。同样也输出带水印的图片。

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示