脚本宝典收集整理的这篇文章主要介绍了理解HttpHandler,并为所有*.jpg图片生成一段文字于图片上,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
接口IHttpHandler的定义如下:
interface IHttpHandler
{
void
PRocessRequest(HttpContext ctx);
bool IsReuseable { get; }
1新建一网站,名为MyHttpHandler
test 2右击添加,选择类库,取名为MyHttpHandler
3-在上一步新建的类库上右键添加
System.Web引用
主要代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.Session
state;
namespace MyHttpHandler
{
p
ublic class Class1:IHttpHandler,IRequiresSessionState
{
#region IHttpHandler成员
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.Wr
ITe("handler处理");
}
#endregion
}
}
4-在MyHttpHandler类库上右键,生成,取名为MyHttpHandler
5-在web.
config中的system.web节点中天下如下节点
<httpHandlers>
<add verb="*" path="Handler1.aspx" ty
PE="MyHttpHandler.Class1,MyHttpHandler"/>
<!--
配置文件中的选项说明:
· verb可以是"GET"或"POST",表示对GET或POST的请求进行处理。"*"表示对所有请求进行处理。
· Path指明对相应的文件进行处理,"*.aspx"表示对发给所有ASPX页面的请求进行处理。可以指明路径,如"/test/*.aspx",
表明只对test目录下的ASPX文件进行处理。
· Type属性中,逗号前的字符串指明HttpHandler的实现类的类名,后面的字符串指明Dll文件的名称。
格式如:type="自定义HttpHandler的实现类的全名,自定义HttpHandler的实现类的命名空间(即Dll名)"
或 type="自定义HttpHandler的实现类的全名"
-->
</httpHandlers>
6-在MyHttpHandlerTest右键添加引用,选择项目找到刚才编译后的.dll文件
7-运行Handler1.aspx,页面显示:
下面我们
利用HttpHandler将一段文字生成于图片中
添加一个类,默认为Class.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.SessionState;
using System.Drawing;
/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Class1:IHttpHandler
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public bool IsReusable
{
get { return true; }
}
private static Image OldImage = null;
private static Image GetOldImage(HttpContext context)
{
if (OldImage
== null)
{
OldImage = Image.
FromFile(context.Server.MapPath("~/Images/Old.
jpg"));
}
return OldImage.Clone() as Image;
}
public void ProcessRequest(HttpContext context)
{
Image newimage = GetOldImage(context);
Graphics gh = Graphics.F
romImage(newimage);
Font font = new Font("Monaco", 24.0f, FontStyle.Regular);
string writetext = HttpUtility.UrlEncode(context.Request.QueryString["writetext"]);
gh.DrawString(HttpUtility.UrlDecode(writetext), font, new Solid
brush(Color.LightBlue), 20.0f, newimage.H
eight - font.Height - 30);
newimage.Save(context.Response.OutputStre
am, System.Drawing.Ima
ging.ImageFormat.Jpeg);
gh.Dispose();
newimage.Dispose();
}
}
新建一个.aspx页面,添加一个HyperLink控件,再在其.cs文件中添加一段代码传值
protected void Page_Load(object sender, Event
args e)
{
HyperLink1.
navigateUrl = "
img.jpg?writetext=" + HttpUtility.UrlEncode("大蜗牛");
}
另外还需在web.config文件中将httpHandlers节点中
改为如下
<add verb="*" path="*.jpg" type="Class1"/>
表明对所有的.jpg格式的文件才会处理
参考《道不远人 深入解析asp.net 2.0控件开发》
脚本宝典总结
以上是脚本宝典为你收集整理的理解HttpHandler,并为所有*.jpg图片生成一段文字于图片上全部内容,希望文章能够帮你解决理解HttpHandler,并为所有*.jpg图片生成一段文字于图片上所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。