首先导入依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.0.7</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
下面上代码:
这里内容根据自己需求自定义就好
public String FAMQRCode(@RequestBody JSONObject famId){
// 二维码内容
String id = famId.getString("famId");
String famName = familyInfoService.famName(id);
HashMap<String, String> QR = new HashMap();
QR.put("type","FAMQRCode");
QR.put("famId",id);
QR.put("famName",famName);
// 生成二维码并指定宽高
BufferedImage generate = QrCodeUtil.generate(QR.toString(), 300, 300);
// 转换流信息写出
FastByteArrayOutputStream os = new FastByteArrayOutputStream();
try {
ImageIO.write(generate, "png", os);
} catch (IOException e) {
return e.getMessage();
}
//如果二维码要在前端显示需要转成Base64
String base64 = "data:image/png;base64,";
String encode = Base64.getEncoder().encodeToString(os.toByteArray());
return base64 + encode;
这里将二维码转为Base64编码返回至前端,也就不存在保存二维码图片的问题,只要注意在Base64编码前加上抬头便可解析。