如何使用:
1.在Web項目中添加壹個類,比如“CreateImage.cs”,然後復制我發布的源代碼;
2.創建壹個新的Web表單,如“Image.aspx”,並添加代碼“CreateImage”。DrawImage()“到Page_Load。當然,不要忘記添加對該類的引用!!
3.可以將以下javascript代碼添加到頁面的適當位置(您想要放置驗證碼的位置)。
源代碼如下所示:
【csharp】查看純文本
///
///驗證碼模塊
///
公共類CreateImage
{
公共靜態void DrawImage()
{
create image img = new create image();
HttpContext。current . session【“check code“】= imgrnd num(4);
img。創建圖像(HttpContext。當前會話【“CheckCode“】。ToString());
}
///
///生成驗證圖片
///
///驗證字符
私有void CreateImages(字符串校驗碼)
{
int iwidth =(int)(checkCode。長度* 13);
系統。繪圖。位圖圖像=新系統。drawing . Bitmap(iwidth,23);
圖形g =圖形。FromImage(圖像);
g.透明(彩色。白色);
//定義顏色
Color【】c = { Color。黑色,彩色。紅色,彩色。深藍色,彩色。綠色,彩色。橙色,彩色。棕色,彩色。暗青色,彩色。紫色};
//定義字體
string【】font = {“verdana“、“Microsoft sans serif“、“Comic sans ms“、“Arial“、“Song Ti“};
Random rand = new Random();
//隨機輸出噪聲
for(int I = 0;我& lt50;i++)
{
int x =蘭特。下壹張(圖片。寬度);
int y =蘭特。下壹張(圖片。身高);
g.DrawRectangle(新鋼筆(顏色。淺灰色,0),x,y,1,1);
}
//輸出不同字體和顏色的驗證碼字符。
for(int I = 0;我
{
int cindex = rand。下壹個(7);
int findex = rand。下壹個(5);
Font f =新系統。繪圖。字體(字體【findex】,10,系統。drawing . font style . bold);
刷b =新系統。drawing . solid brush(c【cindex】);
int ii = 4;
if((I+1)% 2 = = 0)
{
ii = 2;
}
g.拉繩(校驗碼。substring(I,1),f,b,3+(I * 12),ii);
}
//繪制邊框
g.DrawRectangle(新鋼筆(顏色。黑色,0),0,0圖像。寬度-1,圖像。高度-1);
//輸出到瀏覽器
系統。IO .內存流ms =新系統。IO . memory stream();
形象。保存(毫秒,系統。drawing . imaging . imageformat . JPEG);
HttpContext。current . response . clear content();
//響應。clear content();
HttpContext。current . response . content type =“image/Jpeg“;
HttpContext。current . response . binary write(ms . ToArray());
g.dispose();
形象。dispose();
}
///
///生成隨機字母
///
///生成的字母數
///字符串
私有字符串rnd num(int VcodeNum)
{
string Vchar =“0,1,2,3,4,5,6,7,8,9“;
string【】VC array = Vchar。拆分(‘,‘);
字符串VNum =““;//因為字符串很短,所以不需要StringBuilder。
int temp =-1;//記錄最後壹個隨機數,盡量避免產生幾個相同的隨機數。
//采用簡單算法,保證生成隨機數的差異性。
Random rand = new Random();
for(int I = 1;我& ltVcodeNum+1;i++)
{
if(temp!= -1)
{
rand =新的Random(I * temp *未檢查((int)DateTime。now . Ticks));
}
int t =蘭特。接下來(VcArray。長度);
if(temp!=-1 & amp;& amp溫度== t)
{
返回rnd num(VcodeNum);
}
temp = t;
VNum+= VC array【t】;
}
返回VNum
}
}