<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版权协议,转载请附上原文出处链接和本声明。