![ASP驗(yàn)證碼的制作方法教程匯總_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/4b8d411d-71f9-49be-9a59-4b688c9ec47c/4b8d411d-71f9-49be-9a59-4b688c9ec47c1.gif)
![ASP驗(yàn)證碼的制作方法教程匯總_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/4b8d411d-71f9-49be-9a59-4b688c9ec47c/4b8d411d-71f9-49be-9a59-4b688c9ec47c2.gif)
![ASP驗(yàn)證碼的制作方法教程匯總_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/4b8d411d-71f9-49be-9a59-4b688c9ec47c/4b8d411d-71f9-49be-9a59-4b688c9ec47c3.gif)
![ASP驗(yàn)證碼的制作方法教程匯總_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/4b8d411d-71f9-49be-9a59-4b688c9ec47c/4b8d411d-71f9-49be-9a59-4b688c9ec47c4.gif)
![ASP驗(yàn)證碼的制作方法教程匯總_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/4b8d411d-71f9-49be-9a59-4b688c9ec47c/4b8d411d-71f9-49be-9a59-4b688c9ec47c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ASP驗(yàn)證碼的制作方法教程一、BMP圖知識(shí)學(xué)習(xí)經(jīng)過一個(gè)星期的學(xué)習(xí)和研究,終于做出了自己的驗(yàn)證碼,在這感謝網(wǎng)友的知識(shí)分享受,今天 我把我的經(jīng)驗(yàn)和心得分享給網(wǎng)友們,有什么不懂的,可以QQ184201917問我。首先你的弄懂 BMP 圖的存儲(chǔ)原理,下面我們來(lái)看下圖0Q000040090000ACBBB3CF007S6CB9D4S973D5BCD7B5BA7995BO47C932D9DD3Cn?OOOOOlOh00000020bOO0CQQ3OhOOQOOOOhOOOOOOfiOh00000070?. 000000 Or.66 72 AA C7 6D ;B5 C5 7Aoo|oo oo|oo BE D
2、I口 J:0|36 00 00 00| 00(01 00|18 00|C4 0E 00840000(00CE 74007首先,需要知道 BMP文件里面的字節(jié)數(shù)據(jù)有四個(gè)部分,分別是:位圖文件頭(bitmap-file header )、位圖信息頭( bitmap-information header )、彩色表( color table )、定義位圖的字節(jié)(即位圖數(shù)據(jù) Data Body )陣列但是對(duì)于我們現(xiàn)在要討論的24位真彩的 BMP文件來(lái)說,里面不存在彩色表,因此整個(gè)里面只剩下三個(gè)部分。如上圖所示,是一個(gè) 24位真彩圖的字節(jié)數(shù)據(jù)(使用的UltraEdit打開)的開始部分截圖(里面的數(shù)據(jù)均為
3、 16進(jìn)制,即每?jī)蓚€(gè)數(shù)字代表一個(gè)字節(jié)),表上面的頂欄 0f和左側(cè)的OOOOOOXXOh是用來(lái)方面看數(shù)據(jù)的(也可以方便記數(shù)),比如數(shù)據(jù)表的第一行的第三個(gè)字節(jié)數(shù) 據(jù)9E的位置就是 OOOOOOOOh + 2 = 00000002h,這就是為什么在一些解釋中定位中使用OOOOOOXXXh 的原因。我們可以看到數(shù)據(jù)表被三種顏色的線條劃分為16個(gè)部分:14部分(紅色線劃分)是位圖文件頭;515部分(開始用藍(lán)色線條劃分部分)是位圖信息頭;16部分(既就是用綠色線劃分的后面所有數(shù)據(jù))是位圖的字節(jié)陣列;9E如上所說,因?yàn)槭?24位真彩圖,所以不存在彩色表。下來(lái)詳細(xì)說明每一部分代表什么含義: (首先在這里強(qiáng)調(diào)一
4、下!在上圖中的字節(jié)數(shù)據(jù)中,拿第二部分表示文件大小的字節(jié)數(shù)據(jù)(40 09 00 )來(lái)說,其16進(jìn)制真正的順序和上面顯示的是相反的,即就是上圖表示的文件大小為 0009499E (用16進(jìn)制表示),因此在讀取文件數(shù)據(jù)操作時(shí),就就需要注意了?。?4部分(位圖文件頭):1: 42 4D 這是 BMP文件的標(biāo)示,是 ASCII的BM 的16進(jìn)制的值;(大小:2byte )2 : 9E 40 09 00用字節(jié)表示的整個(gè)文件的大小; (大?。?4 byte = 1 dword )3 :00 00 00 00 保留,設(shè)置為 0 ;(大?。?4 byte = 1 dword )4 :36 00 00 00從文件
5、開始到位圖數(shù)據(jù)開始之間的數(shù)據(jù) (bitmap data)之間的偏移量;(大?。? byte = 1 dword )515部分(位圖信息頭):5 : 28 00 00 00 位圖信息頭 (Bitmap Info Header) 的長(zhǎng)度;(大?。?4 byte = 1 dword )6 :F7 01 00 00位圖的寬度,以像素為單位;(大?。? byte =1 dword)(它的16進(jìn)制大小應(yīng)反過來(lái),所以10進(jìn)制大小是503)7 :91 01 00 00位圖的高度,以像素為單位;(大?。? byte =1 dword)8 :01 00位圖的位面數(shù);(大小: 2 byte =1 word )9 :
6、18 00每個(gè)像素的位數(shù);(大?。? byte=1 word)10:00 00 00 00壓縮說明(0表示不壓縮)(大小:4 byte =1 dword)11 : 68 40 09 00用字節(jié)數(shù)表示的位圖數(shù)據(jù)的大小。該數(shù)必須是4的倍數(shù)(至于為什么下面會(huì)有解釋)(大小:4 byte = 1 dword )12 : C4 0E 00 00用像素 /米表示的水平分辨率;(大小:4 byte = 1 dword )13 : C4 0E 00 00用像素/米表示的垂直分辨率;(大?。? byte = 1 dword )14: 00 00 00 00位圖使用的顏色數(shù);(大?。? byte = 1 dwor
7、d )15-4-9三分鐘解析24位真彩BMP格式文件-推酷 3/715 :00 00 00 00指定重要的顏色數(shù)。當(dāng)該域的值等于顏色數(shù)時(shí),表示所有顏色都一樣重要;(大小:4 byte = 1 dword )16部分(位圖字節(jié)陣列):16 :從上面的綠色劃分線以后均為字節(jié)陣列數(shù)據(jù),用于繪制。而且每三個(gè)字節(jié)表示一個(gè)像素。描述完了上述的圖的分塊含義,現(xiàn)在就說一說BMP中的一些需要注意的方面,首先在位圖字節(jié)陣列數(shù)據(jù)中BMP存儲(chǔ)的圖像數(shù)據(jù)是從左下角的像素開始,到最后的右上角像素。其中還有一個(gè)比較主要的概念,而且與繪圖讀取數(shù)據(jù)有關(guān)的概念是“掃描行”;掃描行:掃描行指圖像在存儲(chǔ)器中一行像素的字節(jié)數(shù)據(jù),圖像掃
8、描行的大小,取決于圖象的顏色數(shù)目和用象素表示的圖象寬度。BMP格式還有個(gè)非常重要的規(guī)定:要求每一掃描行的字節(jié)數(shù)據(jù)必須能被 4整除,也就是 dword對(duì)齊(dword是一種數(shù)據(jù)類型,長(zhǎng)度為 4個(gè)字節(jié))。如 果圖像的一行字節(jié)數(shù)不能被4整除,就需要在每行的末尾補(bǔ)齊0以達(dá)到規(guī)定。因此在我們的讀取數(shù)據(jù)中需要根據(jù) BMP圖像的寬度來(lái)判斷是否被補(bǔ)0,判斷方法就是先判斷一行的字節(jié)數(shù)是否可以被4整除,如果整除則不需要補(bǔ)0,如果沒有整除,則求出補(bǔ)的0的個(gè)數(shù)(具體計(jì)算方法是,bu_0_number = width(像素)* 3 % 4 ),那么就知道在每一行的末尾都補(bǔ)了bu_0_number個(gè)0 ,因此我們?cè)谧x取時(shí)
9、繪制圖片時(shí)就要忽略這些數(shù)據(jù)。(補(bǔ)充:求每一行的字節(jié)數(shù) size = width* 3 )經(jīng)過上面分析,我們已經(jīng)可以著手寫程序了,因?yàn)檎麄€(gè)過程已經(jīng)在我們腦袋中了。首先從上 面可以看出,位圖文件頭部分的數(shù)據(jù)只有寬度和高度部分的數(shù)據(jù)對(duì)我們有作用(對(duì)于我們已經(jīng)知 道需要解析的圖片是24位真彩BMP圖片),下來(lái)有用的就是位圖字節(jié)陣列部分的數(shù)據(jù),里面每三個(gè)代表一個(gè)像素的RGB值(里面補(bǔ) 0的部分忽略),字節(jié)存儲(chǔ)的圖片像素的順序是從左下到右上,這樣我們只需要讀一組RGB值設(shè)置畫筆顏色,然后繪制一個(gè)像素;讀一組 RGB值設(shè)置顏色再繪制一個(gè)像素就可以了二、學(xué)習(xí)弄清網(wǎng)上大量的 10X100的BMP的ASP驗(yàn)證程序
10、1、把下面的程序復(fù)制粘貼到checkcode.asp中2、把下面程序復(fù)制粘貼到 code.asp中圖片驗(yàn)證碼程序%如果驗(yàn)證碼不為空,說明提交了表單if request.Form(code) the n如果輸入的驗(yàn)證碼與隨機(jī)產(chǎn)生的驗(yàn)證碼相同則重新定向頁(yè)面到http:/http:/marykaysj.eicp. netif cstr(request.Form(code)=cstr(Sessi on (CheckCode) the nresp on se.Redirect(http:/marykaysj.eicp .n et)否則彈出錯(cuò)誤警告對(duì)話框,終止程序運(yùn)行elseresponse.write
11、alert(驗(yàn)證失敗,請(qǐng)重新輸入驗(yàn)證碼);history.back();resp on se.e ndend ifend if% 驗(yàn)證碼:三、建自己的ASP驗(yàn)證碼準(zhǔn)備工具photoshopUltraEdit先在photoshop中建一個(gè)寬30像素高300像素的圖片,分辨率選72, RGB8位,0K再填上0-9十個(gè)數(shù),保存文件名為body.bmp,(參數(shù)選windows,24位),最后如下圖:02再新建一個(gè)寬120像素高30像素的圖片,不用填任何東西,保存文件名為head.bmp。然后用UltraEdit進(jìn)行截取。用UltraEdit打開head.bmp刪去54個(gè)字節(jié)后所有字節(jié),就要前面的 54
12、個(gè)字節(jié),用head.fix文 件名保存。然后打開 body.bmp,刪去前54個(gè)字節(jié),留后面的所有字節(jié)(就是位圖字節(jié)陣列),用body.fix文件名保存。四、修改checkcode.asp文件修改之前分析一下位圖字節(jié)陣列原理,我們現(xiàn)在用的是每個(gè)字30X30的圖片,所以有 900個(gè)點(diǎn),每個(gè)點(diǎn)都是 RGB參數(shù)控制的,所以是 8位的三個(gè)字節(jié),這樣這個(gè)字就有 2700個(gè),因?yàn)槊啃?有30個(gè)點(diǎn)每個(gè)點(diǎn)3字節(jié),這樣一行就有 90個(gè)字節(jié),而掃瞄行是 4個(gè)字節(jié)一取的,一行不是 4的整數(shù)倍用0000補(bǔ)二個(gè)字節(jié),所以一行是92個(gè)字節(jié),30行就有2760個(gè)字節(jié)。弄清了就可以修改checkcode.asp程序了。我修改好的程序如下:Code.asp文件如下: 圖片驗(yàn)證碼程序 #form1 table tr td fon t-size: 14px;%如果驗(yàn)證碼不為空,說明提交了表單if request.Form(code) the n如果輸入的驗(yàn)證碼與隨機(jī)產(chǎn)生的驗(yàn)證碼相同則重新定向頁(yè)面到if cstr(request.Form(code)=cstr(Sessi on (CheckCode) the nresp on se.Redirect(http:/marykaysj.eicp .n
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 5 We're family (說課稿)-2024-2025學(xué)年外研版(三起)(2024)英語(yǔ)三年級(jí)上冊(cè)
- 1《學(xué)習(xí)伴我成長(zhǎng)》(說課稿)-部編版道德與法治三年級(jí)上冊(cè)
- Unit 2 Different families Part B Let's talk(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 2《用水計(jì)量時(shí)間》說課稿-2024-2025學(xué)年科學(xué)五年級(jí)上冊(cè)教科版
- 2025產(chǎn)品購(gòu)銷合同樣書
- 2023九年級(jí)數(shù)學(xué)下冊(cè) 第25章 投影與視圖25.1 投影第2課時(shí) 正投影說課稿 (新版)滬科版001
- 2025城市民用戶燃?xì)夤こ虒?shí)施合同書范本范文
- 2025婦女發(fā)展監(jiān)測(cè)評(píng)估項(xiàng)目工程合同管理
- 2025合同模板合伙人利潤(rùn)分配協(xié)議范本
- 2024-2025學(xué)年高中政治 第3單元 第6課 第1框 源遠(yuǎn)流長(zhǎng)的中華文化說課稿 新人教版必修3001
- GB/T 17395-2024鋼管尺寸、外形、重量及允許偏差
- 2025屆山東省濟(jì)南市歷城二中高二上數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 2024年全國(guó)各地中考試題分類匯編:文學(xué)常識(shí)
- 七年級(jí)信息技術(shù)上冊(cè) 第13課時(shí) 文件管理教案 科教版
- 2022年版義務(wù)教育語(yǔ)文課程標(biāo)準(zhǔn)題庫(kù)(教師教資培訓(xùn)考試專用十三套)
- 英語(yǔ)新課標(biāo)(英文版)-20220602111643
- 高考模擬作文“文化自信:春節(jié)走向世界”導(dǎo)寫+范文3篇
- 藥品管理法律制度的創(chuàng)新與探索
- 蘇教版三年級(jí)下冊(cè)數(shù)學(xué)計(jì)算能手1000題帶答案
- 邁瑞醫(yī)療 -醫(yī)療器械-從全球器械巨頭發(fā)展看邁瑞海外進(jìn)擊之路
- 改善護(hù)理服務(wù)行動(dòng)計(jì)劃總結(jié)報(bào)告
評(píng)論
0/150
提交評(píng)論