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 Core使用GraphQL第一章之Hello World
這篇文章主要給大家介紹了關(guān)于ASP.NET Core使用GraphQL第一章之Hello World的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11IIS故障(Connections_Refused)問題分析及處理
這幾天某地市Web服務(wù)器連續(xù)多次出現(xiàn)故障問題(Connections_Refused),正好借這個(gè)案例向大家詳細(xì)介紹下,需要了解的朋友可以參考下2012-12-12ASP.NET Core MVC 過(guò)濾器的使用方法介紹
本篇文章主要介紹了ASP.NET Core MVC 過(guò)濾器的使用方法介紹,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09ajax.net對(duì)數(shù)據(jù)庫(kù)的插入實(shí)例
ajax.net對(duì)數(shù)據(jù)庫(kù)的插入實(shí)例,需要的朋友可以參考一下2013-04-04批量刪除記錄時(shí)如何實(shí)現(xiàn)全選方法總結(jié)
批量刪除記錄時(shí)如何實(shí)現(xiàn)全選方法總結(jié)...2007-04-04