国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

理解HttpHandler,并為所有*.jpg圖片生成一段文字于圖片上

2024-07-10 13:24:03
字體:
來源:轉載
供稿:網友
接口IHttpHandler的定義如下:

復制代碼 代碼如下:


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節(jié)點中天下如下節(jié)點
<httpHandlers>
<add verb="*" path="Handler1.aspx" type="MyHttpHandler.Class1,MyHttpHandler"/>
<!--
配置文件中的選項說明:

· verb可以是"GET"或"POST",表示對GET或POST的請求進行處理。"*"表示對所有請求進行處理。

· Path指明對相應的文件進行處理,"*.aspx"表示對發(fā)給所有ASPX頁面的請求進行處理。可以指明路徑,如"/test/*.aspx",表明只對test目錄下的ASPX文件進行處理。

· Type屬性中,逗號前的字符串指明HttpHandler的實現(xiàn)類的類名,后面的字符串指明Dll文件的名稱。

格式如:type="自定義HttpHandler的實現(xiàn)類的全名,自定義HttpHandler的實現(xiàn)類的命名空間(即Dll名)"

或 type="自定義HttpHandler的實現(xiàn)類的全名"
-->
</httpHandlers>
6-在MyHttpHandlerTest右鍵添加引用,選擇項目找到剛才編譯后的.dll文件

7-運行Handler1.aspx,頁面顯示:

理解HttpHandler,并為所有*.jpg圖片生成一段文字于圖片上


下面我們利用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: 在此處添加構造函數(shù)邏輯
//
}
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節(jié)點中改為如下
<add verb="*" path="*.jpg" type="Class1"/>
表明對所有的.jpg格式的文件才會處理
參考《道不遠人 深入解析asp.net 2.0控件開發(fā)》
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 漳浦县| 高青县| 余庆县| 鱼台县| 金平| 电白县| 新竹市| 成武县| 萨嘎县| 象山县| 大城县| 顺平县| 岱山县| 金平| 南丹县| 永福县| 安仁县| 林州市| 镇平县| 石柱| 屯昌县| 蛟河市| 唐河县| 新津县| 芦溪县| 莱芜市| 淮安市| 鄂托克前旗| 许昌县| 临夏县| 桐城市| 海口市| 逊克县| 班戈县| 油尖旺区| 鄱阳县| 都江堰市| 通辽市| 无棣县| 道真| 磐石市|