验证码 是 怎么生成的,按“确定“后怎么比较是否 输入了正确 的 数字?
解决方案 »
- 页面刷新时鼠标样式的问题
- 网站在百度的快照标题是被篡改...但实际打开网站却不会,困恼?求达人解救
- 讨论,关于单元测试的问题
- 查询数据库中所有的表
- 100分,求:怎么调用金山词霸的取词入口和输出方法,本人想实现用词霸在线(局域内部),高人亮刀了,小弟谢谢了。
- 简单 datagrid问题
- stream流 以图片格式保存并下载到本地
- 请问:4位16进制的Unicode值(例如'\u0041'),和16进制数('\x0041'),有什么区别?
- 求教有没有一键安装配置asp.net环境的
- 我的webservice提供dataset,请问客户端如何用xmlhttp读取并写入table?
- ★★ 用哪个容器控件可以实现?
- 自定义的NameSpace在编译成Dll时遇到问题了...
System.Random ra = new System.Random();
Label1.Text = ra.Next().ToString();//得到随机数
if(Label1.Text!=TextRdm.text)//比较输入的验证码
{}
System.Drawing.Bitmap
System.Drawing.Graphics.DrawString(方法)
用以上类生成图片
//保存到内存流中(MemoryStream)
System.IO.MemoryString stream=new System.IO.MemoryString();
System.Drawing.Bitmap.Save(stream,Imaging.Imaging.ImageFormat.Jpeg)
Response.ContentType="image/jpeg"
Response.Clear()
Response.BinaryWrite(stream.ToArray())大概就是这样了,不过有些地方还得好好看看,如DrawString这个方法,
//如:<%@page inherits="Tht.test" src="XX.cs"%>
///////
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.UI;namespace Tht
{
public class test: Page
{ Random random=new Random();
public void page_load(object source,EventArgs e)
{
ShowImage(800,600,"#00003F",5,"0");//
//ShowImage(宽, 高 ,背景色,字符数,字符类型[1是数字,2是汉字,0是字母]) /////使用说明
}//page_load
public void ShowImage(int Image_W,int Image_H,string BgColor,int StrLength,string Type)
{
int FontSize=(int)(Image_W/(StrLength+0.3));
Bitmap bitmap=new Bitmap(Image_W,Image_H,PixelFormat.Format32bppRgb);
Graphics graphics=Graphics.FromImage(bitmap);
graphics.FillRectangle(new SolidBrush(ColorTranslator.FromHtml(BgColor)),new Rectangle(0,0,Image_W,Image_H));
string str=GetStr(StrLength,Type);
string end="";
for(int i=0;i<StrLength;i++)
{
if(FontSize*i<Image_W-FontSize)
{
end+=str[i];
graphics.DrawString(str[i].ToString(),new Font(GetFont(),FontSize+random.Next(-3,3),FontStyle.Bold),new SolidBrush(ColorTranslator.FromHtml(GetColor())),FontSize*i,(int)((Image_H-FontSize)/3));
}
}
for(int i=0;i<random.Next(3,5);i++)
{
graphics.DrawArc(new Pen(ColorTranslator.FromHtml(GetColor()),random.Next(1,3)),new Rectangle(random.Next(1,Image_W/3),random.Next(1,Image_H/3),random.Next(Image_W/3,Image_W+Image_W/3),random.Next(Image_H/3,Image_H+Image_H/3)),random.Next(0,360),random.Next(0,360));
}
Session["Num"]=end;
MemoryStream memoryStream=new MemoryStream();
bitmap.Save(memoryStream,ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType="Image/Jpeg";
Response.BinaryWrite(memoryStream.ToArray());
}//ShowImage
public string GetStr(int StrLength,string Type)
{
string Result="";
if(random.Next(0,10)==0)
{
string[] str=new string[]{"爱你一万年","好想你啊","Miss You"};
int sub=random.Next(0,str.Length);
for(int i=0;i<=StrLength/(str[sub].Length);i++)
{
Result+=str[sub];
}
Result.Substring(0,StrLength+random.Next(-2,2));
}
else
{
string str;
switch(Type)
{
case "0":
str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
break;
case "1":
str="1234567890";
break;
case "2":
str="会说谎的是语言不说谎的是感觉而我对悲哀使我了解最爱的是谁离开我是旷世以为我太过自卑";
break;
default:
str="会说谎的是语言不说谎的是感觉";
break;
}
for(int i=0;i<StrLength;i++)
{
Result+=str[random.Next(0,str.Length-1)];
}
}
return Result;
}
public string GetFont()
{
string[] Font=new string[]{"Comic Sans MS","Haettenschweiler","Lucida Sans Unicode","Lucida Console","Georgia","Georgia","GulimChe","隶书","方正舒体","方正舒体","方正舒体","楷体_GB2312","隶书","幼圆","新宋体","宋体-方正超大字符集","华文中宋","黑体","方正姚体","Arial","Arial Black","Lucida Console",};
return Font[random.Next(0,Font.Length)];
}
public string GetColor()
{
string Result="#";
string[] Hex=new string[]{"7","8","9","A","B","C","D","E","F"};
for(int i=0;i<6;i++)
{
Result +=Hex[random.Next(0,Hex.Length)];
}
return Result;
}
}//class test
http://coolhomepages.org/blog/showlog.asp?cat_id=29&log_id=579