java 生成四位驗證碼

最近在看關於生成驗證碼與識別驗證碼的一些知識,加上自己對java的圖像處理並不是很瞭解,因此去網上學習了一下,同時結合了api一塊看。我在這裏按步驟一一給出如何生成一個驗證碼。後續會帶來驗證碼識別的一些知識。

1.首先先定義幾個變量吧,要生成圖像必須得有寬高、驗證碼的個數、生成路徑、生成樣本(一般也就26個字母加上10個數字,這裏先做個測試沒寫那麼多),如下,

 

2.先暫時不考慮如何選取字符到圖像上,而是先想着怎麼生成一個圖像,通過BufferedImage這個類可以生成一個圖像,這兩句話就可以生成一個圖像,如第三個所示,生成一個黑色背景的圖像。

 

 


3.現在考慮怎麼操作這張圖片,在這裏使用Graphics2D這個類,它是繼承Graphics這個類的,可以使用java2D的新功能。首先給它一個白色背景並使用fillrect填充,然後設置上下文顏色,並在座標(80,20)處寫“asd”,具體效果如第二個圖:

 

 

4.現在我們會了如何操作圖像,是時候生成驗證碼了。考慮一下,4個符號在一張圖像上是需要有間隔的,而且整體應該居中,另外如何選擇這四個符號需要用到random,我們先從簡單開始,實現隨機寫四個字符上去位置先固定住

 

相信大家都能看懂吧 ,效果如下生成了 BEA0 ,我這裏並未設置字體,間隔也是通過i控制的,40,20都是寫死的,下面會繼續修改

 

5.現在需要做的就是調整位置和個性化驗證碼:

通過測試修改,效果如圖二,不滿意的小夥伴們可以修改字體和顏色以及背景之類的。

 

6.最後爲了體現面向對象的思想,把代碼優化下就好了,可以建個圖像類來存放其寬高字符數目等屬性,然後在主程序中通過實例化對象引用即可

抓狂感慨下,上傳圖片太無語了。。第一次上傳圖片也是醉了。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章