Java 创建一个简单的验证码图片

代码如下:

package lixin.gan.test;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import javax.imageio.ImageIO;

public class ValidateCode {
	public static void main(String[] args) throws Exception {
		
		// 创建一张图片
		//BufferedImage(int width, int height, int imageType)
		BufferedImage image = new BufferedImage(50, 30, BufferedImage.TYPE_INT_RGB);
		
		// 在图片上面创建一个2D的图层
		Graphics2D graphics = image.createGraphics();
		
		// 设置图层的左上坐标点,以及宽高
		//graphics.fillRect(x, y, width, height);
		graphics.fillRect(0, 0, 50, 30);
		
		// 创建一种颜色
		Color colorBlue = Color.BLACK;
		// Color(int r, int g, int b)
		Color colorRed = new Color(255, 0, 0);  
		
		// 设置图层的颜色
		//graphics.setColor(Color);
		graphics.setColor(colorRed);
		
		// 产生随机数
		List<Integer> randList = new ArrayList<>();
		Random random = new Random();
		for (int i = 0; i < 4; i++) {
			randList.add(random.nextInt(10));
		}
		
		// 创建字体
		// Font(String name, int style, int size)
		Font font = new Font("宋体", Font.ITALIC, 20);
		
		// 设置图层使用的字体
		graphics.setFont(font);
		
		// 将随机数挨个画在图层中
		for (int i = 0; i < randList.size(); i++) {
			graphics.drawString(randList.get(i)+"", i * 10, 20);
		}
		
		// 创建输出流
		OutputStream outputStream = new FileOutputStream(new File("validateCode.png"));
		
		// 将图片保存,并指定图片格式
		ImageIO.write(image, "png", outputStream);
	}
}

   效果图(白色部分):

  

 

  

 

posted @ 2018-12-20 10:45  寻觅beyond  阅读(334)  评论(0编辑  收藏  举报
返回顶部