简单验证码程序编写

package cn.zy;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import org.junit.Test;
public class Demo01 extends JFrame{
@Test
public void test1()throws Exception{
 //声明图片的大小
 int width=80;
 int height=30;
 //声明内存中的图片
 BufferedImage img=new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
 //获取画笔
 Graphics g=img.getGraphics();
 //修改画笔的颜色,默认的是黑色
 g.setColor(Color.WHITE);
 g.fillRect(0, 0, width, height);
 //以上是画出了一个30×60的白色方块,下面开始往里面写内容
 //先修改画笔的颜色
 Random r=new Random();
 //设置字体大小
 g.setFont(new Font("楷体", Font.BOLD, 20));
 for(int i=0;i<5;i++){
  int a=r.nextInt(10);//生产1~10的随机数
  String src = "abcdefghijklmnopqrstuvwxyz";
  char c = src.toCharArray()[r.nextInt(src.length())];
  //随机获取颜色
  g.setColor(new Color(r.nextInt(256), r.nextInt(256), r.nextInt(256)));
     //写出这个字
  if(r.nextInt(10)%2==1)
  g.drawString(""+a, i*15,10+r.nextInt(20));
  else
  g.drawString(""+c, i*15,10+r.nextInt(20));
 }
 // 画线
   for (int i = 0; i < 15; i++) {
    g.setColor(new Color(r.nextInt(256), r.nextInt(256), r.nextInt(256)));
    // g.drawLine(r.nextInt(width),r.nextInt(height), r.nextInt(width),
    // r.nextInt(height));
    g.drawOval(r.nextInt(width), r.nextInt(height), 5, 5);
   }
   // 图片生效
   g.dispose();
   // 将图片保存到指定的目录下
   ImageIO.write(img, "JPEG", new FileOutputStream("d:/a/a.jpg"));
 
}
}

你可能感兴趣的:(验证码)