首页 > Java开发 > Java实现网页验证码

Java实现网页验证码

  1. package tk.donghongyujava.util;
  2. import java.awt.Color;
  3. public class RandomImage {
  4.     private final static int WIDTH = 100;
  5.     private final static int HEIGHT = 30;
  6.     public static Random rd = new Random();
  7.     public static BufferedImage creatImage() {
  8.         // 画出图片
  9.         BufferedImage image = new BufferedImage(WIDTH, HEIGHT,
  10.                 BufferedImage.TYPE_INT_BGR);
  11.         // 得到画笔
  12.         Graphics g = image.getGraphics();
  13.         // 设置背景
  14.         drawBackground(g);
  15.         // 绘制边框
  16.         drawBorder(g);
  17.         //绘制内容
  18.         drawContent(g);
  19.         // 绘制干扰
  20.         drawDisturb(g);
  21.         return image;
  22.     }
  23.     private static void drawContent(Graphics g) {
  24.         // TODO Auto-generated method stub
  25.         String  con="qwertyuiopasdfgjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
  26.         StringBuffer sb=new StringBuffer();
  27.         for(int i=0;i<4;i++){
  28.             int index=rd.nextInt(con.length());
  29.             char str=con.charAt(index);
  30.             sb.append(str+" ");
  31.         }
  32.         g.setColor(Color.black);
  33.         g.setFont(new Font("Gungsuh",Font.BOLD, 20));
  34.         g.drawString(sb.toString(), 15, 20);
  35.     }
  36.     private static void drawDisturb(Graphics g) {
  37.         // TODO Auto-generated method stub
  38.         g.setColor(Color.BLUE);
  39.         for (int i = 0; i < 4; i++) {
  40.             int x1 = rd.nextInt(WIDTH);
  41.             int y1 = rd.nextInt(HEIGHT);
  42.             int x2 = rd.nextInt(WIDTH);
  43.             int y2 = rd.nextInt(HEIGHT);
  44.             g.drawLine(x1, y1, x2, y2);
  45.         }
  46.         g.setColor(Color.red);
  47.         g.drawOval(30, 20, 2, 2);
  48.     }
  49.     private static void drawBorder(Graphics g) {
  50.         // TODO Auto-generated method stub
  51.         g.setColor(Color.yellow);
  52.         g.drawRect(0, 0, WIDTH - 2, HEIGHT - 2);
  53.     }
  54.     private static void drawBackground(Graphics g) {
  55.         // TODO Auto-generated method stub
  56.         g.setColor(Color.green);
  57.         g.fillRect(0, 0, WIDTH, HEIGHT);
  58.     }
  59. }

本文固定链接: http://www.devba.com/index.php/archives/3389.html | 开发吧

报歉!评论已关闭.