java生成二维码以及链接邀请

 			
<img src="/cn-user/inviter-code-image.html?width=130&inviterCode=<s:property value="inviterURL"/>">
         

导包:

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

使用教程:

    public String inviterCodeImage() {
        try {
            if (width <= 0) {
                width = 200;
            }
            var response = ServletActionContext.getResponse();
            byte[] bs = ImageUtils.createQRCodeImage(inviterCode, width);
            response.setHeader("Cache-Control", "no-store");
            response.setContentType("image/png");
            response.setContentLength(bs.length);
            response.getOutputStream().write(bs);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

工具类:

    /**
     * 创建二维码图片
     * @param text
     * @param width
     * @return
     */
    public static byte[] createQRCodeImage(String text, int width) {
        var hints = new HashMap<EncodeHintType, Object>();
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        hints.put(EncodeHintType.MARGIN, 0);
        return createQRCodeImage(text, width, hints);
    }

    /**
     * 创建二维码图片
     * @param text
     * @param width
     * @param 二维码图片微调参数
     * @return
     */
    public static byte[] createQRCodeImage(String text, int width, Map<EncodeHintType, Object> hints) {
        try {
            var writer = new QRCodeWriter();
            @SuppressWarnings("SuspiciousNameCombination")
            var matrix = writer.encode(text, BarcodeFormat.QR_CODE, width, width, hints);
            var buffer = new ByteArrayOutputStream();
            MatrixToImageWriter.writeToStream(matrix, "PNG", buffer);
            return buffer.toByteArray();
        } catch (Exception e) {
            log.error("create qrcode image", e);
            return new byte[0];
        }
    }

版权声明:本文为qq_42892856原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。