使用谷歌的zxing来生成二维码
maven依赖:
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.2.0</version>
</dependency>
封装的方法:
private static String encoderQRCode(String values) {
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
// 指定纠错等级
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.MARGIN, 1);
// 指定编码格式
String value = "";
try {
BitMatrix byteMatrix;
byteMatrix = new MultiFormatWriter().encode(values, BarcodeFormat.QR_CODE, 500, 500, hints);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
MatrixToImageWriter.writeToStream(byteMatrix, "png", bao);
value = "data:image/gif;base64," + Base64.encodeBase64String(bao.toByteArray());
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
执行方法后,返回的value:
https://img-blog.csdnimg.cn/2022010612400245051.gif
将这串value放在html页面的img标签中,即可显示二维码,扫描到的内容就是方法的入参values
<img src="https://img-blog.csdnimg.cn/2022010612400245051.gif">
扫描二维码有惊喜哟
end!