代码如下:
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);
}
}
效果图(白色部分):