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