73 lines
2.4 KiB
C#
73 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.SessionState;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
|
|
|
|
namespace Mtxfw.VipSite
|
|
{
|
|
/// <summary>
|
|
/// 验证码 by Telesa 2011.04.07
|
|
/// </summary>
|
|
public class CheckCode0 : IHttpHandler, IRequiresSessionState
|
|
{
|
|
public void ProcessRequest(HttpContext context)
|
|
{
|
|
if (!String.IsNullOrEmpty(context.Request["yzcode"]))
|
|
{
|
|
string yzcode = HttpUtility.UrlDecode(context.Request["yzcode"].ToString()).Replace("_","+");
|
|
//Mtxfw.Utility.Common.WriteHtml("/weixin/yzcode.txt", yzcode);
|
|
yzcode = Mtxfw.Utility.Security.DecryptString(yzcode);
|
|
//Mtxfw.Utility.Common.WriteHtml("/weixin/yzcode0.txt", yzcode);
|
|
ValidateCode(yzcode, 60, 25, "Arial", 12, "#FFFFFF");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 生成图片并写入字符
|
|
/// </summary>
|
|
/// <param name="VNum">目标字符</param>
|
|
/// <param name="w">宽</param>
|
|
/// <param name="h">高</param>
|
|
/// <param name="font">字体文件</param>
|
|
/// <param name="fontSize">字体大小</param>
|
|
/// <param name="bgColor">图片背景颜色</param>
|
|
private void ValidateCode(string VNum, int w, int h, string font, int fontSize, string bgColor)
|
|
{
|
|
//生成图像的实例
|
|
Bitmap Img = new Bitmap(w, h);
|
|
//从Img对象生成新的Graphics对象
|
|
Graphics g = Graphics.FromImage(Img);
|
|
//背景颜色
|
|
g.Clear(ColorTranslator.FromHtml(bgColor));
|
|
//生成Font类的实例
|
|
Font f = new Font(font, fontSize, FontStyle.Bold);
|
|
|
|
//生成笔刷类的实例
|
|
SolidBrush s = new SolidBrush(Color.Red);
|
|
//将VNum写入图片中
|
|
g.DrawString(VNum, f, s, 3, 3);
|
|
//将此图像以Jpeg图像文件的格式保存到流中
|
|
Img.Save(System.Web.HttpContext.Current.Response.OutputStream, ImageFormat.Jpeg);
|
|
System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";
|
|
|
|
g.Dispose();
|
|
Img.Dispose();
|
|
System.Web.HttpContext.Current.Response.End();
|
|
}
|
|
|
|
public bool IsReusable
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|