三分自留地

          Follow your heart

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            4 Posts :: 2 Stories :: 1 Comments :: 0 Trackbacks

          一、清晰型

          <%@ page contentType="image/jpeg" import="java.awt.*, 
          java.awt.image.*,java.util.*,javax.imageio.*" %> 
          <%! 
          Color getRandColor(int fc,int bc) 

          Random random = new Random(); 
          if(fc>255) fc=255; 
          if(bc>255) bc=255; 
          int r=fc+random.nextInt(bc-fc); 
          int g=fc+random.nextInt(bc-fc); 
          int b=fc+random.nextInt(bc-fc); 
          return new Color(r,g,b); 

          %> 
          <% 
          out.clear();
          response.setHeader("Pragma","No-cache"); 
          response.setHeader("Cache-Control","no-cache"); 
          response.setDateHeader("Expires", 0); 
          int width=60, height=20; 
          BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
          Graphics g = image.getGraphics(); 
          Random random = new Random(); 
          g.setColor(getRandColor(200,250)); 
          g.fillRect(0, 0, width, height); 
          g.setFont(new Font("Times New Roman",Font.PLAIN,18)); 
          g.setColor(getRandColor(160,200)); 
          for (int i=0;i<155;i++) 

          int x = random.nextInt(width); 
          int y = random.nextInt(height); 
          int xl = random.nextInt(12); 
          int yl = random.nextInt(12); 
          g.drawLine(x,y,x+xl,y+yl); 

          String sRand=""; 
          for (int i=0;i<4;i++){ 
          String rand=String.valueOf(random.nextInt(10)); 
          sRand+=rand; 
          g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110))); 
          g.drawString(rand,13*i+6,16); 

          session.setAttribute("SRA",sRand);
          g.dispose(); 
          ImageIO.write(image, "JPEG", response.getOutputStream()); 
          %>


          二、凌亂型

          <%@ page contentType="image/jpeg"
              import="java.awt.*, 
          java.awt.image.*,java.util.*,javax.imageio.*"%>
          <%! 
          Color getRandColor(int fc,int bc) 

          Random random = new Random(); 
          if(fc>255) fc=255; 
          if(bc>255) bc=255; 
          int r=fc+random.nextInt(bc-fc); 
          int g=fc+random.nextInt(bc-fc); 
          int b=fc+random.nextInt(bc-fc); 
          return new Color(r,g,b); 

          %>
          <% 
          char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                  'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
                  'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

          response.setHeader("Pragma","No-cache"); 
          response.setHeader("Cache-Control","no-cache"); 
          response.setDateHeader("Expires", 0); 
          int width=60, height=20; 
          BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
          Graphics g = image.getGraphics(); 
          Random random = new Random(); 
          g.setColor(getRandColor(200,250)); 
          g.fillRect(0, 0, width, height); 
          g.setFont(new Font("Fixedsys",Font.PLAIN,18)); 
          g.drawRect(0, 0, width - 1, height - 1); // 隨機產生160條干擾線,使圖象中的認證碼不易被其它程序探測到。
          g.setColor(Color.BLACK);
          for (int i = 0; i < 30; i++) {
              int x = random.nextInt(width);
              int y = random.nextInt(height);
              int xl = random.nextInt(12);
              int yl = random.nextInt(12);
              g.drawLine(x, y, x + xl, y + yl);
          }
          String sRand=""; 
          for (int i=0;i<4;i++){     
          String rand=String.valueOf(codeSequence[random.nextInt(36)]);
          sRand+=rand; 
          g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110))); 
          g.drawString(rand,13*i+6,16); 

          session.setAttribute("SRA",sRand);
          g.dispose(); 
          ImageIO.write(image, "JPEG", response.getOutputStream()); 
          out.clear();
          out = pageContext.pushBody();
          %>


          posted on 2013-11-01 13:43 大山 閱讀(115) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 隆尧县| 亳州市| 阿合奇县| 无极县| 鸡泽县| 太康县| 松桃| 玛多县| 田阳县| 金沙县| 清原| 鞍山市| 万荣县| 萍乡市| 垦利县| 旬邑县| 仁寿县| 桑日县| 天柱县| 化州市| 东明县| 香河县| 乐都县| 且末县| 灌阳县| 东海县| 孟村| 通化县| 马公市| 岳西县| 娱乐| 武平县| 邛崃市| 麻阳| 永清县| 桐乡市| 平果县| 韶关市| 望谟县| 北流市| 大足县|