asp.net創(chuàng)建位圖生成驗(yàn)證圖片類(驗(yàn)證碼類)
代碼:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/jpeg";
//創(chuàng)建位圖,并且給指定邊框的寬高
using (Image img=new Bitmap(80,25))
{
//創(chuàng)建畫家對(duì)象,在img對(duì)象畫字符串
using (Graphics g=Graphics.FromImage(img))
{
//設(shè)置位圖的背景顏色,默認(rèn)是黑色
g.Clear(Color.White);
//設(shè)置驗(yàn)證碼的寬高, img.Width-1, img.Height-1主要是背景顏色覆蓋了邊框線
g.DrawRectangle(Pens.Black, 0, 0, img.Width-1, img.Height-1);
//傳100個(gè)噪點(diǎn),傳畫家對(duì)象,位圖對(duì)象
DrawPoint(100, g, img);
//畫4個(gè)驗(yàn)證碼的字符串
string vcode=GetCode(4);//vcode這里可以賦值給Cookie
g.DrawString(vcode,
new Font("Arial", 14, FontStyle.Strikeout | FontStyle.Strikeout), // FontStyle字體的樣式,多個(gè)樣式,需要|線
Brushes.Black,
new RectangleF(r.Next(20), r.Next(7), img.Width, img.Height));
img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);//保存驗(yàn)證碼對(duì)象,指定是Jpeg格式
}
}
}
//畫噪點(diǎn)方法
void DrawPoint(int point,Graphics g,Image img)
{
for (int i = 0; i < point; i++)
{
int x = r.Next(img.Width);
int y = r.Next(img.Width);
g.DrawLine(Pens.Red,
new Point(x, y),
new Point(x+2, y+2));
}
}
//隨機(jī)數(shù)
Random r = new Random();
//畫字符創(chuàng)
string GetCode(int point)
{
string txtStr = "ASF2345WE5R9F3HMBCZ455K";//這里的string字符串將會(huì)轉(zhuǎn)成 char數(shù)組,阿拉伯?dāng)?shù)字1和小寫字母l最好別寫在里面,會(huì)搞胡亂。
char[] charArr = txtStr.ToArray();
int num = 0;
string code = "";
for (int i = 0; i <point; i++)
{
num = r.Next(charArr.Length);
code +=charArr[num];
}
return code;
}
- ASP.NET中畫圖形驗(yàn)證碼的實(shí)現(xiàn)代碼
- ASP.NET生成圖形驗(yàn)證碼的方法詳解
- asp.net生成字母和數(shù)字混合圖形驗(yàn)證碼
- Asp.net Web Api實(shí)現(xiàn)圖片點(diǎn)擊式圖片驗(yàn)證碼功能
- Asp.net開發(fā)之webform圖片水印和圖片驗(yàn)證碼的實(shí)現(xiàn)方法
- asp.net驗(yàn)證碼圖片生成示例
- asp.net 圖片驗(yàn)證碼的HtmlHelper
- asp.net 驗(yàn)證碼生成和刷新及驗(yàn)證
- asp.net(C#) 生成隨機(jī)驗(yàn)證碼的代碼
- ASP.NET MVC驗(yàn)證碼功能實(shí)現(xiàn)代碼
- asp.net使用ashx生成圖形驗(yàn)證碼的方法示例
相關(guān)文章
ASP.NET MVC5使用MiniProfiler監(jiān)控MVC性能
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC5使用MiniProfiler監(jiān)控MVC性能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
在ASP.Net?Core應(yīng)用程序中使用Bootstrap4
這篇文章介紹了在ASP.Net?Core應(yīng)用程序中使用Bootstrap4的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
AspNetPager與Socut.Data使用實(shí)例代碼
最近對(duì)AspNetPager與Socut.Data這兩個(gè)控件產(chǎn)生了濃厚的興趣,這兩個(gè)控件配合可以減輕很多程序員編寫代碼的壓力。ASpNetPager為分頁控件,而Socut.Data為數(shù)據(jù)操作控件,ACCESS,MSSQL都可以。2008-07-07
asp.net中GridView數(shù)據(jù)鼠標(biāo)移入顯示提示信息
本篇文章給大家介紹在asp.net中g(shù)ridview數(shù)據(jù)鼠標(biāo)移入顯示提示信息,需要的朋友可以參考下本文2015-09-09
C#/.NET讀取或修改文件的創(chuàng)建時(shí)間及修改時(shí)間詳解
這篇文章主要給大家介紹了關(guān)于C#/.NET讀取或修改文件的創(chuàng)建時(shí)間及修改時(shí)間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
ASP.NET MVC5驗(yàn)證系列之服務(wù)端驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC5驗(yàn)證系列之服務(wù)端驗(yàn)證,使用兩種方法來驗(yàn)證數(shù)據(jù)的合法性,手動(dòng)驗(yàn)證的方式和數(shù)據(jù)注解來進(jìn)行服務(wù)端驗(yàn)證,感興趣的小伙伴們可以參考一下2016-07-07
根據(jù)控件Id得到控件并對(duì)該控件進(jìn)行操作
在做動(dòng)態(tài)獲取控件時(shí),時(shí)常需要根據(jù)Id得到控件,并對(duì)該控件進(jìn)行操作,示例如下,大家可以參考下2014-06-06
教你30分鐘通過Kong實(shí)現(xiàn).NET網(wǎng)關(guān)
Kong是一個(gè)Openrestry程序,而Openrestry運(yùn)行在Nginx上,用Lua擴(kuò)展了nginx。所以可以認(rèn)為Kong = Openrestry + nginx + lua,這篇文章主要介紹了30分鐘通過Kong實(shí)現(xiàn).NET網(wǎng)關(guān),需要的朋友可以參考下2021-11-11
asp.net GridView排序簡單實(shí)現(xiàn)
使用javascript操作table排序才是實(shí)用的排序,這樣排序不怎么好,但是有時(shí)候可能會(huì)用來,記錄一下。2009-12-12
Asp.net core Web Api配置swagger中文的實(shí)現(xiàn)
swagger是一個(gè)api文檔自動(dòng)生動(dòng)工具,還集成了在線調(diào)試. 可以為項(xiàng)目自動(dòng)生成接口文檔, 非常的方便快捷,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09

