<%@ (tng)page (tng)contentType="image/jpeg" (tng)import="java.awt.*, (tng) java.awt.image.*,java.util.*,javax.imageio.*" (tng)%> (tng) <% (tng) // (tng)在内存(sh)创徏图象 (tng) int (tng)width=60, (tng)height=20; (tng) BufferedImage (tng)image (tng)= (tng)new (tng)BufferedImage(width, (tng)height, (tng) BufferedImage.TYPE_INT_RGB); (tng)
// (tng)获取囑Ş上下文?br />Graphics (tng)g (tng)= (tng)image.getGraphics(); (tng)
// (tng)讑֮背景色?br />g.setColor(new (tng)Color(0xDCDCDC)); (tng) g.fillRect(0, (tng)0, (tng)width, (tng)height); (tng)
//画边框?br />g.setColor(Color.black); (tng) g.drawRect(0,0,width-1,height-1); (tng)
// (tng)取随Z生的认证?4位数? (tng) String (tng)rand (tng)= (tng)request.getParameter("rand"); (tng) rand (tng)= (tng)rand.substring(0,rand.indexOf(".")); (tng) switch(rand.length()) (tng) { (tng) case (tng)1: (tng)rand (tng)= (tng)"000"+rand; (tng)break; (tng) case (tng)2: (tng)rand (tng)= (tng)"00"+rand; (tng)break; (tng) case (tng)3: (tng)rand (tng)= (tng)"0"+rand; (tng)break; (tng) default: (tng)rand (tng)= (tng)rand.substring(0,4); (tng)break; (tng) } (tng)
// (tng)认证码存入SESSION (tng) session.setAttribute("rand",rand); (tng)
// (tng)认证码昄到图象中 (tng) g.setColor(Color.black); (tng) Integer (tng)tempNumber (tng)= (tng)new (tng)I(yng)nteger(rand); (tng) String (tng)numberStr (tng)= (tng)tempNumber.toString(); (tng)
g.setFont(new (tng)Font("Atlantic (tng)I(yng)nline",Font.PLAIN,18)); (tng) String (tng)Str (tng)= (tng)numberStr.substring(0,1); (tng) g.drawString(Str,8,17); (tng)
Str (tng)= (tng)numberStr.substring(1,2); (tng) g.drawString(Str,20,15); (tng) Str (tng)= (tng)numberStr.substring(2,3); (tng) g.drawString(Str,35,18); (tng)
Str (tng)= (tng)numberStr.substring(3,4); (tng) g.drawString(Str,45,15); (tng)
// (tng)随机产生88个干扰点Q图象中的认证码不易被其它E序探测刊W?br />Random (tng)random (tng)= (tng)new (tng)Random(); (tng) for (tng)(int (tng)i=0;i<20;i++) (tng) { (tng) int (tng)x (tng)= (tng)random.nextInt(width); (tng) int (tng)y (tng)= (tng)random.nextInt(height); (tng) g.drawOval(x,y,0,0); (tng) } (tng)
// (tng)图象生效 (tng) g.dispose(); (tng)
// (tng)输出图象到页面?br />ImageIO.write(image, (tng)"JPEG", (tng)response.getOutputStream()); (tng) %> code source http://jspcn.net/htmlnews/13004003160.html |