圖片驗(yàn)證碼生成方法、裝置和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明涉及一種圖片驗(yàn)證碼生成方法、裝置和系統(tǒng)。所述方法包括以下步驟:將白色字符繪制于黑色背景的圖片上;獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值;將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小;將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。上述圖片驗(yàn)證碼生成方法、裝置和系統(tǒng),通過(guò)將字符繪制在背景圖片上,將其亮度值進(jìn)行等比例縮小處理后,將字符的顏色作為透明色,背景的顏色作為不透明色進(jìn)行ALPHA混合,字符的邊緣也由字符的顏色和背景的顏色混合處理得到,減小或消除了鋸齒,使得字符邊緣更加清晰,提高了圖片中字符的清晰度。
【專(zhuān)利說(shuō)明】
圖片驗(yàn)證碼生成方法、裝置和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及驗(yàn)證碼生成領(lǐng)域,特別是涉及一直圖片驗(yàn)證碼生成方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)的圖片驗(yàn)證碼生成方式一般是直接將字符繪制在圖片上,然后對(duì)繪制后的圖片做扭曲與噪聲添加。將字符直接繪制在圖片上,因圖像庫(kù)的限制,只能讓整個(gè)字符使用同一種顏色,不能生成單個(gè)顏色字符多種顏色的驗(yàn)證碼。為此采用的解決方法是將繪制出的字符當(dāng)成模版使用,即將白色字符繪制于純黑色背景的圖片上,然后將圖片中的白色部分替換成需要的顏色,黑色部分替換成背景顏色,但是由于字符的邊緣為了平滑處理鋸齒會(huì)產(chǎn)生一些灰色的點(diǎn),這部分的點(diǎn)被簡(jiǎn)單的替換成前景色或背景色使得字符看上去有很多鋸齒,顯得模糊不清,如圖1所示,字符看上去有很多鋸齒。
【發(fā)明內(nèi)容】
[0003]基于此,有必要針對(duì)傳統(tǒng)的圖片驗(yàn)證碼生成方法使得字符有很多鋸齒顯得模糊不清的問(wèn)題,提供一種圖片驗(yàn)證碼生成方法,能減少或消除鋸齒,提高圖片中字符的清晰度。
[0004]此外,還提供了一種圖片驗(yàn)證碼生成裝置和系統(tǒng)。
[0005]一種圖片驗(yàn)證碼生成方法,包括以下步驟:
[0006]將白色字符繪制于黑色背景的圖片上;
[0007]獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值;
[0008]將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮?。?br>[0009]將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0010]上述圖片驗(yàn)證碼生成方法,通過(guò)將字符繪制在背景圖片上,將其亮度值進(jìn)行等比例縮小處理后,將字符的顏色作為透明色,背景的顏色作為不透明色進(jìn)行ALPHA混合,字符的邊緣也由字符的顏色和背景的顏色混合處理得到,減小或消除了鋸齒,使得字符邊緣更加清晰,提高了圖片中字符的清晰度。
[0011]一種圖片驗(yàn)證碼生成裝置,包括:
[0012]繪制模塊,用于將白色字符繪制于黑色背景的圖片上;
[0013]獲取模塊,用于獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值;
[0014]亮度處理模塊,用于將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小;
[0015]生成模塊,用于將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0016]上述圖片驗(yàn)證碼生成裝置,通過(guò)將字符繪制在背景圖片上,將其亮度值進(jìn)行等比例縮小處理后,將字符的顏色作為透明色,背景的顏色作為不透明色進(jìn)行ALPHA混合,字符的邊緣也由字符的顏色和背景的顏色混合處理得到,減小或消除了鋸齒,使得字符邊緣更加清晰,提高了圖片中字符的清晰度。
[0017]一種圖片驗(yàn)證碼生成系統(tǒng),包括驗(yàn)證碼生成服務(wù)器,所述驗(yàn)證碼生成服務(wù)器用于將白色字符繪制于黑色背景的圖片上,獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值,將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小,并將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0018]上述圖片驗(yàn)證碼生成系統(tǒng),通過(guò)將字符繪制在背景圖片上,將其亮度值進(jìn)行等比例縮小處理后,將字符的顏色作為透明色,背景的顏色作為不透明色進(jìn)行ALPHA混合,字符的邊緣也由字符的顏色和背景的顏色混合處理得到,減小或消除了鋸齒,使得字符邊緣更加清晰,提高了圖片中字符的清晰度。
【附圖說(shuō)明】
[0019]圖1為傳統(tǒng)的字符顯示效果示意圖;
[0020]圖2為一個(gè)實(shí)施例中圖片驗(yàn)證碼生成方法的流程圖;
[0021 ]圖3為字符和背景混合示意圖;
[0022]圖4為一個(gè)實(shí)施例中圖片驗(yàn)證碼生成裝置的結(jié)構(gòu)框圖;
[0023]圖5為一個(gè)實(shí)施例中圖片驗(yàn)證碼生成系統(tǒng)的架構(gòu)示意圖;
[0024]圖6為圖5中圖片驗(yàn)證碼生成和驗(yàn)證過(guò)程的工作時(shí)序圖;
[0025]圖7為一個(gè)實(shí)施例中服務(wù)器的內(nèi)部結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0026]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0027]圖2為一個(gè)實(shí)施例中圖片驗(yàn)證碼生成方法的流程圖。如圖2所示,一種圖片驗(yàn)證碼生成方法,包括以下步驟:
[0028]步驟202,將白色字符繪制于黑色背景的圖片上。
[0029]本實(shí)施例中,黑色背景為純黑色背景。字符可為字母、數(shù)字、文字、符號(hào)等一種或兩種以上的組合。
[0030]步驟204,獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值。
[0031]具體的,像素點(diǎn)的亮度值可為O至255中的值。
[0032]步驟206,將每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小。
[0033]在一個(gè)實(shí)施例中,將每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小的步驟包括:將每個(gè)像素點(diǎn)的亮度值做歸一化處理,其中,ALPHA的值采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值。
[0034]進(jìn)一步的,該將每個(gè)像素點(diǎn)的亮度值做歸一化處理的步驟包括:將亮度值O至255等比例縮小到O至I之間,所得圖片中黑色背景為0,白色字符中心區(qū)域?yàn)?,字符邊緣的值為O至I之間。
[0035]ALPHA的值直接采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值,即O至I。
[0036]步驟208,將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0037]ALPHA混合的作用是實(shí)現(xiàn)一種半透明效果。假設(shè)一種不透明東西的顏色是M,另一種透明東西的顏色是N,那么透過(guò)N去看M,看上去的顏色C就是N和M的混合顏色,可以采用公式(I) (2) (3)進(jìn)行近似計(jì)算,設(shè)N物體的透明度為alpha,其中alpha的取值為O至1,O為完全透明,I為完全不透明。
[0038]R(C) = alpha*R(N) + (l_alpha)*R(M)(I)
[0039]G(C) = alpha*G (N)+ (1-alpha) *G (M)(2)
[0040]B(C) = alpha*B (N)+ (1-alpha) *B (M)(3)
[0041]式(I)(2) (3)中,R(x)、G(x)、B (X)分別指顏色 x 的 R(Red,紅色)分量、G(Green,綠色)分量和B (Blue,藍(lán)色)分量。通過(guò)alpha混合,可實(shí)現(xiàn)火光、煙霧、陰影、動(dòng)態(tài)光源等半透明效果。
[0042]將歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值作為公式(I) (2) (3)中alpha的值。alpha和ALPHA表示同一個(gè)值。將字符的顏色作為公式(I) (2) (3)中的N,將背景的顏色作為公式⑴⑵(3)中的M。
[0043]圖片驗(yàn)證碼是指全自動(dòng)區(qū)分計(jì)算機(jī)和人類(lèi)的圖靈測(cè)試(Completely AutomatedPublic Turing test to tell Computers and Humans Apart,簡(jiǎn)稱(chēng) CAPTCHA),為一種區(qū)分用戶是計(jì)算機(jī)和人的公共全自動(dòng)程序。在CAPTCHA測(cè)試中,作為服務(wù)器的計(jì)算機(jī)會(huì)自動(dòng)生成一個(gè)問(wèn)題由用戶來(lái)解答,這個(gè)問(wèn)題可以由計(jì)算機(jī)生成并評(píng)判,但是必須只有人類(lèi)才能解口 O
[0044]上述圖片驗(yàn)證碼生成方法,通過(guò)將字符繪制在背景圖片上,將其亮度值進(jìn)行等比例縮小處理后,將字符的顏色作為透明色,背景的顏色作為不透明色進(jìn)行ALPHA混合,字符的邊緣也由字符的顏色和背景的顏色混合處理得到,減小或消除了鋸齒,使得字符邊緣更加清晰,提高了圖片中字符的清晰度。
[0045]圖3為字符和背景混合示意圖。如圖3所示,將字符的顏色作為前景色,將前景色和背景色通過(guò)ALPHA值進(jìn)行混合得到混合后的結(jié)果。
[0046]在一個(gè)實(shí)施例中,將每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小的步驟包括:獲取繪制后的圖片上像素點(diǎn)的最大亮度值;求取每個(gè)像素點(diǎn)的亮度值與最大亮度值的比值。
[0047]具體的,例如繪制后的圖片上像素點(diǎn)的最大亮度值為100,則將每個(gè)像素點(diǎn)的亮度值與100作比值,將所得到的比值作為透明色的權(quán)值,將I與比值的差值作為不透明色的權(quán)值。
[0048]進(jìn)一步的,將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼的步驟包括:將字符的顏色作為透明色,背景的顏色作為不透明色,以及將比值作為透明色的權(quán)值,將I與該比值的差值作為不透明色的權(quán)值,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0049]具體的,將字符的顏色作為公式⑴(2) (3)中的N,將背景的顏色作為公式⑴(2)
(3)中的M0
[0050]圖4為一個(gè)實(shí)施例中圖片驗(yàn)證碼生成裝置的結(jié)構(gòu)框圖。如圖4所示,一種圖片驗(yàn)證碼生成裝置,包括繪制模塊410、獲取模塊420、亮度處理模塊430和生成模塊440。其中:
[0051]繪制模塊410用于將白色字符繪制于黑色背景的圖片上。本實(shí)施例中,黑色背景為純黑色背景。字符可為字母、數(shù)字、文字、符號(hào)等一種或兩種以上的組合。
[0052]獲取模塊420用于獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值。具體的,像素點(diǎn)的亮度值可為O至255中的值。
[0053]亮度處理模塊430用于將該每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小。
[0054]本實(shí)施例中,亮度處理模塊430還用于將每個(gè)像素點(diǎn)的亮度值做歸一化處理,其中,ALPHA的值采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值。
[0055]進(jìn)一步的,亮度處理模塊430還用于將亮度值O至255等比例縮小到O至I之間,所得圖片中黑色背景為0,白色字符中心區(qū)域?yàn)?,字符邊緣的值為O至I之間。ALPHA的值直接采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值,即O至I。
[0056]生成模塊440用于將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0057]ALPHA混合的作用是實(shí)現(xiàn)一種半透明效果。假設(shè)一種不透明東西的顏色是M,另一種透明東西的顏色是N,那么透過(guò)N去看M,看上去的顏色C就是N和M的混合顏色,可以采用公式(I) (2) (3)進(jìn)行近似計(jì)算,設(shè)N物體的透明度為alpha,其中alpha的取值為O至1,O為完全透明,I為完全不透明。
[0058]R(C) = alpha*R(N) + (l_alpha)*R(M)(I)
[0059]G(C) = alpha*G (N)+ (1-alpha) *G (M)(2)
[0060]B(C) = alpha*B (N)+ (1-alpha) *B (M)(3)
[0061]式(I)(2) (3)中,R(x)、G(x)、B (X)分別指顏色 x 的 R(Red,紅色)分量、G(Green,綠色)分量和B (Blue,藍(lán)色)分量。通過(guò)alpha混合,可實(shí)現(xiàn)火光、煙霧、陰影、動(dòng)態(tài)光源等半透明效果。
[0062]將歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值作為公式(I) (2) (3)中alpha的值。alpha和ALPHA表示同一個(gè)值。
[0063]上述圖片驗(yàn)證碼生成裝置,通過(guò)將字符繪制在背景圖片上,將其亮度值進(jìn)行等比例縮小處理后,將字符的顏色作為透明色,背景的顏色作為不透明色進(jìn)行ALPHA混合,字符的邊緣也由字符的顏色和背景的顏色混合處理得到,減小或消除了鋸齒,使得字符邊緣更加清晰,提高了圖片中字符的清晰度。
[0064]在一個(gè)實(shí)施例中,亮度處理模塊430還用于獲取繪制后的圖片上像素點(diǎn)的最大亮度值,以及求取每個(gè)像素點(diǎn)的亮度值與最大亮度值的比值;該生成模塊還用于將比值作為透明色的權(quán)值,將I與該比值的差值作為不透明色的權(quán)值,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0065]具體的,例如繪制后的圖片上像素點(diǎn)的最大亮度值為100,則將每個(gè)像素點(diǎn)的亮度值與100作比值,將所得到的比值作為透明色的權(quán)值,將I與比值的差值作為不透明色的權(quán)值。將字符的顏色作為公式(I) (2) (3)中的N,將背景的顏色作為公式(I) (2) (3)中的M。
[0066]圖5為一個(gè)實(shí)施例中圖片驗(yàn)證碼生成系統(tǒng)的架構(gòu)示意圖。如圖5所示,一種圖片驗(yàn)證碼生成系統(tǒng),包括終端510、網(wǎng)頁(yè)服務(wù)器520、驗(yàn)證服務(wù)器530和驗(yàn)證碼生成服務(wù)器540。
[0067]其中,終端510上的客戶端通過(guò)URL (Uniform Resource Locator,統(tǒng)一資源定位符)訪問(wèn)網(wǎng)頁(yè)服務(wù)器520。終端510可為臺(tái)式計(jì)算機(jī)、平板電腦、手機(jī)、個(gè)人數(shù)字助理等。
[0068]網(wǎng)頁(yè)服務(wù)器520從驗(yàn)證服務(wù)器530獲取圖片驗(yàn)證碼,并將圖片驗(yàn)證碼返回給終端510,在終端510上展示給用戶,并接收用戶在終端510上輸入的答案,并將輸入的答案?jìng)鬏斀o驗(yàn)證服務(wù)器530。
[0069]驗(yàn)證服務(wù)器530用于從驗(yàn)證碼生成服務(wù)器540拉取圖片驗(yàn)證碼,并生成與該圖片驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼答案,并將圖片驗(yàn)證碼及驗(yàn)證碼答案對(duì)應(yīng)存儲(chǔ),以及將輸入的答案與存儲(chǔ)的驗(yàn)證碼答案進(jìn)行比較,得到驗(yàn)證結(jié)果,并將驗(yàn)證結(jié)果通過(guò)網(wǎng)頁(yè)服務(wù)器520下發(fā)給用戶所在的終端510。
[0070]具體的,驗(yàn)證服務(wù)器530將輸入的答案與存儲(chǔ)的驗(yàn)證碼答案進(jìn)行比較,若相同,則驗(yàn)證通過(guò),若不相同,則驗(yàn)證失敗。
[0071 ] 驗(yàn)證碼生成服務(wù)器540用于生成圖片驗(yàn)證碼。本實(shí)施例中,驗(yàn)證碼生成服務(wù)器540用于將白色字符繪制于黑色背景的圖片上,獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值,將該每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小,并將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0072]本實(shí)施例中,黑色背景為純黑色背景。字符可為字母、數(shù)字、文字、符號(hào)等一種或兩種以上的組合。像素點(diǎn)的亮度值可為O至255中的值。
[0073]驗(yàn)證碼生成服務(wù)器540還用于將每個(gè)像素點(diǎn)的亮度值做歸一化處理,其中,ALPHA的值采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值。
[0074]ALPHA混合的作用是實(shí)現(xiàn)一種半透明效果。假設(shè)一種不透明東西的顏色是M,另一種透明東西的顏色是N,那么透過(guò)N去看M,看上去的顏色C就是N和M的混合顏色,可以采用公式(I) (2) (3)進(jìn)行近似計(jì)算,設(shè)N物體的透明度為alpha,其中alpha的取值為O至1,O為完全透明,I為完全不透明。
[0075]R(C) = alpha*R(N) + (l_alpha)*R(M)(I)
[0076]G(C) = alpha*G (N)+ (1-alpha) *G (M)(2)
[0077]B (C) = alpha*B (N) + (1-alpha) *B (M)(3)
[0078]式(I)(2) (3)中,R(x)、G(x)、B (X)分別指顏色 x 的 R(Red,紅色)分量、G(Green,綠色)分量和B (Blue,藍(lán)色)分量。通過(guò)alpha混合,可實(shí)現(xiàn)火光、煙霧、陰影、動(dòng)態(tài)光源等半透明效果。
[0079]將歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值作為公式(I) (2) (3)中alpha的值。alpha和ALPHA表示同一個(gè)值。將字符的顏色作為公式(I) (2) (3)中的N,將背景的顏色作為公式⑴⑵(3)中的M。
[0080]在一個(gè)實(shí)施例中,驗(yàn)證碼生成服務(wù)器540還用于將亮度值O至255等比例縮小到O至I之間,所得圖片中黑色背景為0,白色字符中心區(qū)域?yàn)?,字符邊緣的值為O至I之間。
[0081]在一個(gè)實(shí)施例中,驗(yàn)證碼生成服務(wù)器540還用于獲取繪制后的圖片上像素點(diǎn)的最大亮度值,并求取每個(gè)像素點(diǎn)的亮度值與最大亮度值的比值,以及將字符的顏色作為透明色,背景的顏色作為不透明色,以及將比值作為透明色的權(quán)值,將I與該比值的差值作為不透明色的權(quán)值,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0082]具體的,例如繪制后的圖片上像素點(diǎn)的最大亮度值為100,則將每個(gè)像素點(diǎn)的亮度值與100作比值,將所得到的比值作為透明色的權(quán)值,將I與比值的差值作為不透明色的權(quán)值。將字符的顏色作為公式(I) (2) (3)中的N,將背景的顏色作為公式(I) (2) (3)中的M。
[0083]上述圖片驗(yàn)證碼生成系統(tǒng),通過(guò)將字符繪制在背景圖片上,將其亮度值進(jìn)行等比例縮小處理后,將字符的顏色作為透明色,背景的顏色作為不透明色進(jìn)行ALPHA混合,字符的邊緣也由字符的顏色和背景的顏色混合處理得到,減小或消除了鋸齒,使得字符邊緣更加清晰,提高了圖片中字符的清晰度。
[0084]在其他實(shí)施例中,驗(yàn)證服務(wù)器530和驗(yàn)證碼生成服務(wù)器540可為一個(gè)服務(wù)器。
[0085]圖6為圖5中圖片驗(yàn)證碼生成和驗(yàn)證過(guò)程的工作時(shí)序圖。結(jié)合圖5和圖6所示,圖片驗(yàn)證碼生成和驗(yàn)證的過(guò)程包括:
[0086](I)驗(yàn)證碼生成服務(wù)器540生成圖片驗(yàn)證碼。
[0087]驗(yàn)證碼生成服務(wù)器540可為一個(gè)或多個(gè),用于生成大量的圖片驗(yàn)證碼。驗(yàn)證碼生成服務(wù)器540用于將白色字符繪制于黑色背景的圖片上,獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值,將該每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小,并將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0088]本實(shí)施例中,黑色背景為純黑色背景。字符可為字母、數(shù)字、文字、符號(hào)等一種或兩種以上的組合。像素點(diǎn)的亮度值可為O至255中的值。
[0089]驗(yàn)證碼生成服務(wù)器540還用于將每個(gè)像素點(diǎn)的亮度值做歸一化處理,其中,ALPHA的值采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值。
[0090]或者,驗(yàn)證碼生成服務(wù)器540還用于獲取繪制后的圖片上像素點(diǎn)的最大亮度值,并求取每個(gè)像素點(diǎn)的亮度值與最大亮度值的比值,以及將字符的顏色作為透明色,背景的顏色作為不透明色,以及將比值作為透明色的權(quán)值,將I與該比值的差值作為不透明色的權(quán)值,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。
[0091 ] (2)驗(yàn)證服務(wù)器530從驗(yàn)證碼生成服務(wù)器540拉取圖片驗(yàn)證碼,并根據(jù)圖片驗(yàn)證碼生成對(duì)應(yīng)的簽名,該簽名中包括驗(yàn)證碼答案,并將圖片驗(yàn)證碼和驗(yàn)證碼答案對(duì)應(yīng)存儲(chǔ)。
[0092](3)終端510向網(wǎng)頁(yè)服務(wù)器520發(fā)起訪問(wèn)請(qǐng)求。
[0093](4)網(wǎng)頁(yè)服務(wù)器520根據(jù)訪問(wèn)請(qǐng)求從驗(yàn)證服務(wù)器530獲取圖片驗(yàn)證碼,并將圖片驗(yàn)證碼返回給終端510,并在終端510上展示。
[0094](5)終端510接收用戶輸入的答案,并將用戶輸入的答案上傳到網(wǎng)頁(yè)服務(wù)器520。
[0095](6)網(wǎng)頁(yè)服務(wù)器520將用戶輸入的答案?jìng)鬏斀o驗(yàn)證服務(wù)器530。
[0096](7)驗(yàn)證服務(wù)器530將用戶輸入的答案與存儲(chǔ)的驗(yàn)證碼答案進(jìn)行比較,若相同,則驗(yàn)證通過(guò),若不同,則驗(yàn)證失敗,并將驗(yàn)證結(jié)果通過(guò)網(wǎng)頁(yè)服務(wù)器520返回給終端510。
[0097]圖7為一個(gè)實(shí)施例中服務(wù)器的內(nèi)部結(jié)構(gòu)圖,該服務(wù)器包括通過(guò)系統(tǒng)總線連接的處理器、存儲(chǔ)介質(zhì)、內(nèi)存和網(wǎng)絡(luò)接口。其中,該服務(wù)器的存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng)、數(shù)據(jù)庫(kù)和圖片驗(yàn)證碼生成裝置,數(shù)據(jù)庫(kù)中存儲(chǔ)有生成的圖片驗(yàn)證碼,該圖片驗(yàn)證碼生成裝置用于實(shí)現(xiàn)適用于驗(yàn)證碼生成服務(wù)器的一種圖片驗(yàn)證碼生成方法。該服務(wù)器的處理器用于提供計(jì)算和控制能力,支撐整個(gè)服務(wù)器的運(yùn)行。該服務(wù)器的內(nèi)存為存儲(chǔ)介質(zhì)中的圖片驗(yàn)證碼生成裝置的運(yùn)行提供環(huán)境。該服務(wù)器的網(wǎng)絡(luò)接口用于據(jù)以與外部的終端通過(guò)網(wǎng)絡(luò)連接通信,比如接收終端發(fā)送的訪問(wèn)請(qǐng)求以及向終端返回圖片驗(yàn)證碼等。服務(wù)器可以用獨(dú)立的服務(wù)器或者是多個(gè)服務(wù)器組成的服務(wù)器集群來(lái)實(shí)現(xiàn)。
[0098]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一非易失性計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)等。
[0099]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種圖片驗(yàn)證碼生成方法,包括以下步驟: 將白色字符繪制于黑色背景的圖片上; 獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值; 將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮?。? 將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小的步驟包括: 將每個(gè)像素點(diǎn)的亮度值做歸一化處理,其中,ALPHA的值采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將每個(gè)像素點(diǎn)的亮度值做歸一化處理的步驟包括: 將亮度值O至255等比例縮小到O至I之間,所得圖片中黑色背景為O,白色字符中心區(qū)域?yàn)镮,字符邊緣的值為O至I之間。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小的步驟包括: 獲取繪制后的圖片上像素點(diǎn)的最大亮度值; 求取每個(gè)像素點(diǎn)的亮度值與最大亮度值的比值; 將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼的步驟包括: 將字符的顏色作為透明色,背景的顏色作為不透明色,以及將比值作為透明色的權(quán)值,將I與所述比值的差值作為不透明色的權(quán)值,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。5.一種圖片驗(yàn)證碼生成裝置,其特征在于,包括: 繪制模塊,用于將白色字符繪制于黑色背景的圖片上; 獲取模塊,用于獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值; 亮度處理模塊,用于將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小; 生成模塊,用于將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述亮度處理模塊還用于將每個(gè)像素點(diǎn)的亮度值做歸一化處理,其中,ALPHA的值采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述亮度處理模塊還用于將亮度值O至255等比例縮小到O至I之間,所得圖片中黑色背景為O,白色字符中心區(qū)域?yàn)?,字符邊緣的值為O至I之間。8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述亮度處理模塊還用于獲取繪制后的圖片上像素點(diǎn)的最大亮度值,以及求取每個(gè)像素點(diǎn)的亮度值與最大亮度值的比值;所述生成模塊還用于將比值作為透明色的權(quán)值,將I與所述比值的差值作為不透明色的權(quán)值,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。9.一種圖片驗(yàn)證碼生成系統(tǒng),其特征在于,包括驗(yàn)證碼生成服務(wù)器,所述驗(yàn)證碼生成服務(wù)器用于將白色字符繪制于黑色背景的圖片上,獲取繪制后的圖片上每個(gè)像素點(diǎn)的亮度值,將所述每個(gè)像素點(diǎn)的亮度值進(jìn)行等比例縮小,并將字符的顏色作為透明色,背景的顏色作為不透明色,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述驗(yàn)證碼生成服務(wù)器還用于將每個(gè)像素點(diǎn)的亮度值做歸一化處理,其中,ALPHA的值采用歸一化處理后的圖片中對(duì)應(yīng)像素點(diǎn)的值。11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述驗(yàn)證碼生成服務(wù)器還用于將亮度值O至255等比例縮小到O至I之間,所得圖片中黑色背景為0,白色字符中心區(qū)域?yàn)?,字符邊緣的值為O至I之間。12.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述驗(yàn)證碼生成服務(wù)器還用于獲取繪制后的圖片上像素點(diǎn)的最大亮度值,并求取每個(gè)像素點(diǎn)的亮度值與最大亮度值的比值,以及將字符的顏色作為透明色,背景的顏色作為不透明色,以及將比值作為透明色的權(quán)值,將I與所述比值的差值作為不透明色的權(quán)值,進(jìn)行ALPHA混合,生成圖片驗(yàn)證碼。13.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括驗(yàn)證服務(wù)器,所述驗(yàn)證服務(wù)器用于從所述驗(yàn)證碼生成服務(wù)器拉取圖片驗(yàn)證碼,并生成與所述圖片驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼答案。14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括網(wǎng)頁(yè)服務(wù)器,所述網(wǎng)頁(yè)服務(wù)器用于從所述驗(yàn)證服務(wù)器獲取圖片驗(yàn)證碼,并將所述圖片驗(yàn)證碼下發(fā)給終端,以及接收用戶在終端上輸入的答案,并將所述輸入的答案?jìng)鬏斀o所述驗(yàn)證服務(wù)器;所述驗(yàn)證服務(wù)器還用于將所述輸入的答案與存儲(chǔ)的驗(yàn)證碼答案進(jìn)行比較,得到驗(yàn)證結(jié)果,并將驗(yàn)證結(jié)果通過(guò)網(wǎng)頁(yè)服務(wù)器下發(fā)給用戶所在的終端。
【文檔編號(hào)】G06T11/60GK106033619SQ201510126073
【公開(kāi)日】2016年10月19日
【申請(qǐng)日】2015年3月20日
【發(fā)明人】羅斌
【申請(qǐng)人】深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司