三分自留地

          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 大山 閱讀(116) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 贺兰县| 苏州市| 赣州市| 关岭| 特克斯县| 宁海县| 清水河县| 丘北县| 临桂县| 石嘴山市| 龙川县| 洛浦县| 高碑店市| 南宁市| 霍城县| 壶关县| 连城县| 宜春市| 个旧市| 靖西县| 长葛市| 湘乡市| 昌宁县| 马鞍山市| 南澳县| 邹城市| 溧水县| 墨脱县| 仁化县| 西城区| 陆河县| 深水埗区| 堆龙德庆县| 比如县| 招远市| 崇左市| 赣榆县| 那坡县| 琼结县| 昔阳县| 常山县|