zxing-生成自定义的qrcode模板

时间:2019-11-26 09:30:16

标签: java qr-code zxing

好吧,我认为它更像是“在哪里可以找到它”而不是一个真正的问题。

我正在使用zxing为我的系统构建QR码引擎,它的工作确实很酷,但是我需要进行一些自定义。

https://www.qrcode-monkey.com/,我发现了一个QR Code构建器,其中包含一些可以供任何QR码阅读器读取的模板。

可以使用MatrixToImageConfig类更改颜色,但是我没有找到改变形状的方法。

有人知道这样做的图书馆吗?!

enter image description here

1 个答案:

答案 0 :(得分:0)

此类用于更改二维码颜色。

public class QRCodeServiceImpl {
    public static final int ON_COLOR = 0xFFFF9F37;
    public static final int OFF_COLOR = 0xFF6638B6;

    public byte[] buildQRCode(String data) throws WriterException, IOException {
        Hashtable<EncodeHintType, Object> hintMap = new Hashtable<>();
        hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        hintMap.put(EncodeHintType.MARGIN, 1);
        hintMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");

        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        BitMatrix bitMatrix = qrCodeWriter.encode(data, BarcodeFormat.QR_CODE, 512, 512, hintMap);

        ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
        MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream, getMatrixConfig());
        byte[] fileData = pngOutputStream.toByteArray();
        return fileData;
    }

    private MatrixToImageConfig getMatrixConfig() {
        MatrixToImageConfig config = new MatrixToImageConfig(ON_COLOR, OFF_COLOR);
        return config;
    }

}