<%@?page?contentType="image/jpeg"?import="java.awt.*,? java.awt.image.*,java.util.*,javax.imageio.*"?%>? <%? //?在內(nèi)存中創(chuàng)建圖象? int?width=60,?height=20;? BufferedImage?image?=?new?BufferedImage(width,?height,? BufferedImage.TYPE_INT_RGB);?
//?獲取圖形上下文? Graphics?g?=?image.getGraphics();?
//?設(shè)定背景色? g.setColor(new?Color(0xDCDCDC));? g.fillRect(0,?0,?width,?height);?
//畫邊框? g.setColor(Color.black);? g.drawRect(0,0,width-1,height-1);?
//?取隨機(jī)產(chǎn)生的認(rèn)證碼(4位數(shù)字)? String?rand?=?request.getParameter("rand");? rand?=?rand.substring(0,rand.indexOf("."));? switch(rand.length())? {? case?1:?rand?=?"000"+rand;?break;? case?2:?rand?=?"00"+rand;?break;? case?3:?rand?=?"0"+rand;?break;? default:?rand?=?rand.substring(0,4);?break;? }?
//?將認(rèn)證碼存入SESSION? session.setAttribute("rand",rand);?
//?將認(rèn)證碼顯示到圖象中? g.setColor(Color.black);? Integer?tempNumber?=?new?Integer(rand);? String?numberStr?=?tempNumber.toString();?
g.setFont(new?Font("Atlantic?Inline",Font.PLAIN,18));? String?Str?=?numberStr.substring(0,1);? g.drawString(Str,8,17);?
Str?=?numberStr.substring(1,2);? g.drawString(Str,20,15);? Str?=?numberStr.substring(2,3);? g.drawString(Str,35,18);?
Str?=?numberStr.substring(3,4);? g.drawString(Str,45,15);?
//?隨機(jī)產(chǎn)生88個(gè)干擾點(diǎn),使圖象中的認(rèn)證碼不易被其它程序探測到? Random?random?=?new?Random();? for?(int?i=0;i<20;i++)? {? int?x?=?random.nextInt(width);? int?y?=?random.nextInt(height);? g.drawOval(x,y,0,0);? }?
//?圖象生效? g.dispose();?
//?輸出圖象到頁面? ImageIO.write(image,?"JPEG",?response.getOutputStream());? %> code source http://jspcn.net/htmlnews/13004003160.html |