maven引用:
<!--hutool工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<!-- zxing生成二维码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.5.3</version>
</dependency>
配置引用hutool包里的QrConfig,可以自己设置大小等。
生成文件到本地:
//生成到本地文件
public static void generateFile(String content, File file){
QrCodeUtil.generate(content, qrConfig, file);
}
输出到流:
//输出到流
public static void generateStream(String content, OutputStream outputStream) {
QrCodeUtil.generate(content,qrConfig,"png",outputStream);
}
输出Base64字符串:
//输出Base64字符串
public static String generateBase64(String content) throws IOException {
String temp = "tempFile"+Math.random()+".png";
File tempFile = new File(temp);
QrCodeUtil.generate(content, qrConfig, tempFile);
// 引用形式的描述信息:读取流
InputStream inputStream = new FileInputStream(temp);
// 引用形式的描述信息:将流转成字节数组
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
byte[] data = byteArrayOutputStream.toByteArray();
// 引用形式的描述信息:使用Base64编码
String base64Encoded = Base64.getEncoder().encodeToString(data);
// 引用形式的描述信息:获取Base64字符串
// System.out.println("Base64字符串:" + base64Encoded);
//删除临时文件
tempFile.delete();
return base64Encoded;
}