各位高手有谁知道怎么在Image中添假验证的图片并显示出来么????知道我散分那!!100分
解决方案 »
- 谁知道买哪的空间支持MSDTC服务?
- 想用日历控件做一个日历,但是在当每年的10月1号的时候在显示日期的同时在日期的下面显示"国庆"两个字,请大侠帮帮忙
- 含泪求助高手拉!!解决后万分感谢
- 如何在前台的JavaScript中访问DATAGRID里的绑定列和模板列
- 请问这个功能怎么实现呢?进来看看吧,大侠们
- 关于Repeater的ViewState的问题!
- 集思广益,有经验的牛人请进!!!关于在ASPX页面实现FTP上传。。。。。
- 不理解ASP.NET的处理机制,请高手指点
- 如何在VB文件中使用样式
- 我要显示DataGrid的行号,不知道用什么方法?
- 关于在OWC中设置字体的问题,求助!!!!!
- 求正则式,解析html
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;namespace validate
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
Response.Clear(); Response.ContentType = "image/gif"; Bitmap bmp = new Bitmap(100,40);
for(int i = 0; i < bmp.Width; i++)
{
for(int j = 0; j < bmp.Height; j++)
{
bmp.SetPixel(i,j,Color.White);
}
} Graphics g = Graphics.FromImage(bmp);
SolidBrush brush = new SolidBrush(Color.Red);
Font font = new Font("宋体",16); Random rand = new Random();
int[] temp = new int[4];
string validateString = "";
for(int i = 0; i < temp.Length; i++)
{
temp[i] = rand.Next(48,90);
if(temp[i] > 57 && temp[i] < 65)
{
i--;
}
else
{
validateString = validateString + Convert.ToChar(temp[i]);
}
} g.DrawString(validateString,font,brush,new Point(10,10));
bmp.Save(Response.OutputStream,ImageFormat.Gif);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace Conference
{
/// <summary>
/// ValidationCodeImg 的摘要说明。
/// </summary>
public class ValidationCodeImg : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
this.CreateCheckCodeImage(GenerateCheckCode());
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty; System.Random random = new Random(); for(int i=0; i<4; i++)
{
number = random.Next(); //if(number % 2 == 0)
code = (char)('0' + (char)(number % 10));
//else
//code = (char)('A' + (char)(number % 26)); checkCode += code.ToString();
} Response.Cookies.Add(new HttpCookie("CheckCode", checkCode)); return checkCode;
} private void CreateCheckCodeImage(string checkCode)
{
if(checkCode == null || checkCode.Trim() == String.Empty)
return; System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 20);
Graphics g = Graphics.FromImage(image); try
{
//生成随机生成器
// Random random = new Random(); //清空图片背景色
g.Clear(Color.White); //画图片的背景噪音线
// for(int i=0; i<25; i++)
// {
// int x1 = random.Next(image.Width);
// int x2 = random.Next(image.Width);
// int y1 = random.Next(image.Height);
// int y2 = random.Next(image.Height);
//
// g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
// } Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Green, Color.Red, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2); //画图片的前景噪音点
// for(int i=0; i<100; i++)
// {
// int x = random.Next(image.Width);
// int y = random.Next(image.Height);
//
// image.SetPixel(x, y, Color.FromArgb(random.Next()));
// } //画图片的边框线
g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
}
}
以上代码为一个页面
在需要用到的图片中写入
<IMG alt="" src="页面名称.aspx" align="absMiddle">
for(int i = 0; i < bmp.Width; i++)
{
for(int j = 0; j < bmp.Height; j++)
{
bmp.SetPixel(i,j,Color.White);
}
} Graphics g = Graphics.FromImage(bmp);
SolidBrush brush = new SolidBrush(Color.Red);
Font font = new Font("宋体",16); Random rand = new Random();
int[] temp = new int[4];
string validateString = "";
for(int i = 0; i < temp.Length; i++)
{
temp[i] = rand.Next(48,90);
if(temp[i] > 57 && temp[i] < 65)
{
i--;
}
else
{
validateString = validateString + Convert.ToChar(temp[i]);
}
} g.DrawString(validateString,font,brush,new Point(10,10));
bmp.Save(Response.OutputStream,ImageFormat.Gif);
}