NewMoring

          與Java同路,贏在未來。

          統計

          積分與排名

          http://bbs.javawind.net/index.jspx

          http://www.chubeibao.com/bbs/index.php

          http://www.java2000.net/

          http://www.javaeye.com/

          http://www.javathinker.org/index.jsp

          http://www.programbbs.com/bbs/index.asp

          最新評論

          隨機碼的生成

          image.jsp頁面:

          <%@ 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);
           }%>
          <%
           //設置頁面不緩存
           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(new Color());
           //g.drawRect(0,0,width-1,height-1);

           // 隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到
           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);
           }

           // 取隨機產生的認證碼(4位數字)
           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
           session.setAttribute("rand", sRand);

           // 圖象生效
           g.dispose();

           // 輸出圖象到頁面
           ImageIO.write(image, "JPEG", response.getOutputStream());
          %>

          posted on 2009-06-02 14:24 清晨 閱讀(274) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 万荣县| 沈阳市| 塘沽区| 兰州市| 虞城县| 潞城市| 霍州市| 海原县| 隆昌县| 株洲市| 南宫市| 蛟河市| 济源市| 泾阳县| 忻城县| 大关县| 攀枝花市| 娄烦县| 民和| 阿拉善右旗| 日土县| 定日县| 泽库县| 长顺县| 建水县| 南通市| 大洼县| 襄垣县| 都匀市| 正镶白旗| 孝义市| 安阳县| 图们市| 巍山| 隆德县| 承德市| 米易县| 金平| 翁牛特旗| 隆回县| 隆安县|