<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
usingSystem;
usingSystem.Web;
usingSystem.Drawing;
usingSystem.Drawing.Imaging;
usingSystem.IO;
/**////<summary>
///映射文件后缀名方式的数字水印
///</summary>publicclassCoverHandler:IHttpHandler
{
//数字水印路径
privateconststringWATERMARK_URL="~/Images/WaterMark.jpg";
//默认图片路径
privateconststringDEFAULT_PIC="~/Images/default.jpg";
publicvoidProcessRequest(HttpContextcontext)
{
ImageCover;
//判断请求的物理路径中,是否存在该文件
if(File.Exists(context.Request.PhysicalPath))
{
//加载文件
Cover=Image.FromFile(context.Request.PhysicalPath);
//加载水印图片
Imagewatermark=Image.FromFile(context.Request.MapPath(WATERMARK_URL));
//实例化画布
Graphicsg=Graphics.FromImage(Cover);
//Cover上绘制水印
g.DrawImage(watermark,newRectangle(Cover.Width-watermark.Width,Cover.Height-watermark.Height,watermark.Width,watermark.Height),0,0,watermark.Width,watermark.Height,GraphicsUnit.Pixel);
//释放画布
g.Dispose();
//释放水印图片
watermark.Dispose();
}
else
{
//加载默认图片
Cover=Image.FromFile(context.Request.MapPath(DEFAULT_PIC));
}
//设置输出格式
context.Response.ContentType="image/jpeg";
//将图片存入输出流
Cover.Save(context.Response.OutputStream,ImageFormat.Jpeg);
//释放资源
Cover.Dispose();
//停止HTTP响应
context.Response.End();
}
publicboolIsReusable
{
get
{
returnfalse;
}
}
}
通过实现IHttpHandler接口,自定义实现HTTP请求的处理
希望对于想要了解ASP.NET内部实现机制的朋友给予帮助
分享到:
相关推荐
在本例中,我们探讨的是如何利用C#和IHttpHandler接口来实现图片的水印效果。IHttpHandler接口是ASP.NET中一个关键组件,它允许开发者自定义HTTP处理程序,以处理特定类型的请求。下面我们将详细讨论这一主题。 ...
在.NET框架中,HttpHandler是ASP.NET的一种...通过自定义HttpHandler和运用System.Drawing库,我们可以实现各种水印效果,并通过Web.config配置使其生效。这样的解决方案既简单又实用,可以方便地集成到ASP.NET应用中。
使用 HttpHandler 和 HttpModule,可以实现自定义的 Http 处理和应用,使应用程序可以与 IIS Web 服务器的低级别请求和响应服务交互。这样可以提高应用程序的灵活性和可扩展性。 案例:使用 HttpModule 实现权限...
自定义HttpHandler需要继承`IHttpHandler`接口,并实现`ProcessRequest`方法。在这个方法中,我们将解析请求URL,识别出动态内容的标识(如参数),然后根据这些参数生成静态内容。示例代码: ```csharp public ...
在博客的测试代码中,`Dragon_HttpHandler`可能是一个包含作者自定义HttpHandler实现的类库项目,其中的类可能以`DragonHttpHandler`或类似命名。这个类库可以被其他ASP.NET项目引用,以复用或扩展HttpHandler的功能...
示例: Hello,HttpHandler(最...示例: 使用HttpHandler实现文件下载页面 -------------------------------------------------------------------------------- 示例: 添加图片访问的HttpHandler,为网站图片提供"水印
正文:为了使层次分明及便于阅读, 整个解决方案如下: 其中BitmapCutter.Core是图片的服务器端处理程序, 类图为: 简单说明下, 更多说明可查看源码...BitmapScissors是一个HttpHandler, 通过客户端返回的 ‘action’
在.NET框架中,HttpHandler是...通过自定义HttpHandler,我们可以实现动态、实时的水印添加,同时结合加密技术提升数据安全。在实际开发中,可以根据具体需求进行扩展,例如支持不同的水印样式、调整水印位置等功能。
#### 实现水印功能 在`ProcessRequest`方法中,我们将加载图片并为其添加水印。这包括读取原始图片、创建水印图像或文字、绘制水印到原始图片上,最后返回处理后的图片。 ```csharp public void ProcessRequest...
这个"通用 万能 HttpHandler"的概念是指一个设计得非常灵活和可复用的HttpHandler实现,能够处理多种不同的请求场景。在这个特定的情况下,我们关注的是文件上传功能,特别是通过HttpWebRequest来实现。 文件上传是...
我们可以自定义HttpHandler来拦截对图片的请求,然后在服务器端动态地为图片添加水印。 1. **创建HttpHandler** 首先,你需要创建一个名为`WaterMarkHandler.cs`的类文件,并实现IHttpHandler接口。这个类将包含...
在处理图片防盗链时,我们可以自定义一个HttpHandler,专门用于处理图片请求,从而实现在服务器端对请求来源进行验证。 接下来,我们探讨如何通过Web.config配置实现这一功能。在Web.config文件中,我们需要在`...
### httpHandler实现.NET无后缀名Web访问 #### 一、引言 在现代Web开发中,为了提高用户体验,很多网站都采用了无后缀名的URL格式,即URL不包含如`.aspx`、`.php`等文件扩展名。这种做法不仅让URL看起来更简洁美观...
利用HttpHandler创建自定义后缀Rss源 通过IhttpHandler实现图片验证码 使用HttpHandler实现图片防盗链
jQuery+HttpHandler实现图片裁剪[整理].pdf
2. **实现IHttpHandler**:自定义的HttpHandler需要实现`IHttpHandler`接口,特别是`ProcessRequest`方法,这是处理器处理请求的核心部分。 3. **无状态**:HttpHandler是无状态的,这意味着每个请求都会创建一个新...
5. **HttpHandler实现** 在ASP.NET中,`HttpHandler`是一种处理HTTP请求的组件。在这个例子中,我们可以创建一个自定义的`IHttpHandler`实现,接收URL参数,动态地在服务器端为请求的图片添加水印,然后返回带有...
ASP.NET 提供了多种机制来实现这一目标,其中一种常用的方法是通过自定义 HttpHandler 来处理特定类型的请求。 #### 一、理解 HttpHandler **HttpHandler** 是 ASP.NET 中用于处理特定 URL 请求的对象。通常情况下...