理解HttpHandler,并为所有*.jpg图片生成一段文字于图片上
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了理解HttpHandler,并为所有*.jpg图片生成一段文字于图片上,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3025字,纯文字阅读大概需要5分钟。
内容图文
![理解HttpHandler,并为所有*.jpg图片生成一段文字于图片上](/upload/InfoBanner/zyjiaocheng/381/d5ca65879e444a169870c08358b87b8c.jpg)
代码如下:
interface IHttpHandler
{
void ProcessRequest(HttpContext ctx);
bool IsReuseable { get; }
1新建一网站,名为MyHttpHandlerTest
2右击添加,选择类库,取名为MyHttpHandler
3-在上一步新建的类库上右键添加System.Web引用
主要代码:
代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.SessionState;
namespace MyHttpHandler
{
public class Class1:IHttpHandler,IRequiresSessionState
{
#region IHttpHandler成员
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write("handler处理");
}
#endregion
}
}
4-在MyHttpHandler类库上右键,生成,取名为MyHttpHandler
5-在web.config中的system.web节点中天下如下节点
<httpHandlers>
<add verb="*" path="Handler1.aspx" type="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.FromImage(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 SolidBrush(Color.LightBlue), 20.0f, newimage.Height - font.Height - 30);
newimage.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
gh.Dispose();
newimage.Dispose();
}
}
新建一个.aspx页面,添加一个HyperLink控件,再在其.cs文件中添加一段代码传值
代码如下:
protected void Page_Load(object sender, EventArgs 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图片生成一段文字于图片上所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。