C 基礎回顧 用GDI 繪製驗證碼

2021-09-05 20:33:18 字數 1384 閱讀 5825

驗證碼在很多需要使用者登陸或發表言論的網頁上都可以見到。傳統的一般是用代表各種不同數字或字元的來進行組合,從而實現效果。但是,很明顯這種方式的靈活性不高,而且需要準備大量的作素材。

public

static

string

generate(randomgeneratorstyle style, 

intlength)

for(

inti =0

; i 

<

length; i++)

return

strvalidatestring;}

上面有乙個randomgeneratorstyle,這個是我自己寫的乙個列舉,用於表示需要生成哪種驗證碼。

public

enum

randomgeneratorstyle

2.有了這些數,那下面就基本上考你是畫畫的功夫了。當然這裡用到的不是顏料、水彩筆等,而是要用gdi+。

平時,我們看見的驗證碼是什麼樣式子的?是不是乙個矩形?矩形裡面有一些隨機數?那接下去要做的就是用gdi+技術把生成的隨機數畫到乙個矩形中。

這個要用到的主要的就只有乙個方法:graphics.drawstring();不了解的朋友可以先去網上查查關於這個方法的介紹。下面直接來看**:

public

static

void

generate(randomgeneratorstyle style, 

intlength,page curpage)

現在,就可以來測試下它的效果了。想要呼叫上面的方法,我們必須要傳入乙個當前的page物件,為此我們可以新建乙個頁面命名為yzm.aspx。然後,在pageload中呼叫該方法。這樣,我們便可以看到它了。如下圖1所示:

圖1 驗證碼

如果,你需要在img元素中顯示,那也很簡單,只需要把src設定為yzm.aspx就可以了。

最後,再來介紹下如何進行驗證。(如果只顯示,不驗證,那就不能管它叫驗證碼了。)

細心的朋友應該已經發現,在繪製驗證碼的方法中,我設定了乙個session。那要進行驗證的話,自然是通過與這個繪製時所設定的session比較了。**如下:

public

static

bool

validate(

string

codetobevalidate,page curpage)

else

return

false;}

通過上面的這種方式,就可以生成驗證碼了。如果你想要生成漂亮些的驗證碼,那就需要你自己在繪製過程中再動動腦筋了。

stg609

出處:

C 利用GDI繪製驗證碼

片 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text...

使用GDI繪製驗證碼

首先建立乙個c windows窗體應用程式 然後在窗體中新增乙個picturebox和button控制項 接著給button按鈕註冊乙個單機事件,開始寫 void identifyingcode 建立位圖物件,設定的寬度和高度,bitmap繼承了image bitmap bmp new bitmap...

繪製驗證碼

public partial class validatecode validatebase 生成驗證碼 private string createvalidatecode base.strvalidate validatecode 儲存驗證碼 return validatecode 影象背景 pr...