首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

驗證碼辨識程式碼範例

     編輯:關於ASP.NET

針對字體固定、位置固定、干擾點與字體顏色無交叉的簡單驗證碼,採三步驟:特徵碼建立 → 圖片切割 → 逐一比對,程式碼不超過 100 行。

特徵碼定義 (0-9)

每個數字以 7x10 陣列表示像素特徵 (1=前景色),如 _num0 至 _num9。

核心演算法

static int[,] getNum(Bitmap bmp, int index) { /* 切割第 index 個字元區域 */ }
static int CheckNumber(int[,] number) { /* 依序比對 0-9 特徵碼 */ }
static bool CheckNumber(int[,] dic, int[,] number) { /* 逐像素比對,dic 有 1 處 number 必為 1 */ }
static public string getNumber(Bitmap bmp) { /* 迴圈辨識 4 位數字 */ }

呼叫範例

WebClient wb = new WebClient();
byte[] b = wb.DownloadData("url");
MemoryStream ms = new MemoryStream(b);
Bitmap bmp = new Bitmap(ms);
string str = BmpNumber.Number.getNumber(bmp); // 輸出如 "9637"

僅適用簡單驗證碼,擴充特徵庫可支援規範字母。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved