zoukankan      html  css  js  c++  java
  • 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);
    	}
    }
    

       效果图(白色部分):

      

      

  • 相关阅读:
    参考__JAVA
    债券价格和通胀率
    C++ 面试题
    欧式和美式期权
    explicit
    smart pointer
    const pointer
    manacher-马拉车算法
    输入有空格的字符串的2种方法
    bind()与connect()——计网中socket的使用
  • 原文地址:https://www.cnblogs.com/-beyond/p/10147964.html
Copyright © 2011-2022 走看看