java生成二维码

GoogleVip8 1年前 ⋅ 333 阅读
  1. 使用maven引入jar包
<dependencies>
    
    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>core</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>javase</artifactId>
        <version>3.4.0</version>
    </dependency>

</dependencies>
  1. 调用生成方法
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;

/**
 * @author MT
 * @program: JavaFxTest
 * @Description:
 * @Created by MT on 2019-10-10 14:36
 */
public class Code {

    public static void main(String[] args) {

        // 传参:二维码内容和生成路径
        Code.orCode("百因必有果,你的报应就是我", System.getProperty("user.dir") + "/code.jpg");
    }

    private static void orCode(String content, String path) {
        try {

            // 图片的宽度和高度
            int width = 300;
            int height = 300;
            // 图片的格式
            String format = "png";
            // 定义二维码的参数
            Map hints = new HashMap();
            // 定义字符集编码格式
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            // 纠错的等级 L > M > Q > H 纠错的能力越高可存储的越少,一般使用M
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
            // 设置图片边距
            hints.put(EncodeHintType.MARGIN, 2);
            // 最终生成 参数列表 (1.内容 2.格式 3.宽度 4.高度 5.二维码参数)
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
            // 写入到本地
            Path file = new File(path).toPath();
            MatrixToImageWriter.writeToPath(bitMatrix, format, file);

        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("生成二维码结束");
    }
}

全部评论: 0

    我有话说: