<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<form action="Handler1.ashx" method="post">
<input name="name" type="text" value="input number" />
<input id="button" type="submit" value="登录" />
</form>
</body>
</html>
//以上是前台的代码,这个代码是为后台的程序提交数据的,提交过去的数据用于显示在图片的指定位置,
//以下是用http做的一个Handler1.后台程序,这个程序在好玩的同时更说明了C/S工作的原理,为:请求-----处理------响应
using System;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
namespace WebApplication1
{
/// <summary>
/// Handler1 的摘要说明
/// </summary>
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/Jpeg";
string file = context.Server.MapPath("~/1.jpg");
string name=context.Request["name"];
using (Image img = Bitmap.FromFile(file))
{
using (Graphics g = Graphics.FromImage(img))
{
g.DrawString(name, new Font("隶书", 50), Brushes.WhiteSmoke, new PointF(550, 80));
}
img.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
//以下代码为写一个验证码的小例子
context.Response.ContentType = "image/Jpeg";
//string file = context.Server.MapPath("~/1.jpg");
// string name=context.Request["name"];
using (Bitmap img =new Bitmap(100,20))
{
using (Graphics g = Graphics.FromImage(img))
{
Random rd = new Random();
int num=rd.Next(1000,9999);
g.DrawString(num.ToString(), new Font("隶书", 16), Brushes.WhiteSmoke, new PointF(0,0));
}
img.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}