基于zxing工具生成二维码

基于zxing生成二维码

        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.4.1</version>
        </dependency>

工具:

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Hashtable;

public class QRCodeUtil {

    public static byte[] createQRCodeImage(String content, int width, int height) throws WriterException, IOException {
        Hashtable<EncodeHintType, Object> hints = new Hashtable<>();
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);  // 设置纠错等级L/M/Q/H,纠错等级越高越不易识别,当前设置等级为最高等级H
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); // 内容所使用字符集编码
        hints.put(EncodeHintType.MARGIN, 10); // 边距大小

        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
        ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
        MatrixToImageWriter.writeToStream(bitMatrix, "JPG", pngOutputStream);
        byte[] jpgData = pngOutputStream.toByteArray();
        return jpgData;
    }

    public static void main(String[] args) throws IOException, WriterException {
        FileOutputStream outputStream = new FileOutputStream("D:\\setup\\set.jpg");
        outputStream.write(createQRCodeImage("test", 350, 350));
    }
}

 

posted @ 2021-12-04 22:13  哲雪君!  阅读(175)  评论(0编辑  收藏  举报