1、快速实现不具有跳转功能的二维码
1.1、引入maven依赖
<!--二维码开发工具集-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.6.10</version>
</dependency>
<!-- zxing生成二维码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.3</version>
</dependency>
1.2、配置注入QrConfig
@Configuration
public class QRCodeConfig {
@Bean
public QrConfig qrConfig(){
QrConfig qrConfig=new QrConfig();
qrConfig.setBackColor(Color.white.getRGB());
qrConfig.setForeColor(Color.black.getRGB());
qrConfig.setQrVersion(3);
return qrConfig;
}
}
1.3、两种生成方式
//生成并下载存储到本地文件中
QrCodeUtil.generate("扫描后显示内容", 注入QrConfig, File对象);
//生成并输出到浏览器页面上
QrCodeUtil.generate("扫描后显示内容",注入QrConfig,"文件格式",response.getOutputStream());
2、实现带有跳转功能的多类型扫描码
2.1、在 1 中引入的依赖基础上,再加上以下依赖
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.0.0</version>
</dependency>
2.2、生成方式
//这里用到百度地址举例
String url = "http://www.baidu.com";
Map<EncodeHintType, String> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
//码的类型可根据BarcodeFormat的类型传递不同参数决定
BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 400, 400, hints);
//生成并输出到浏览器页面上
MatrixToImageWriter.writeToStream(bitMatrix,"jpg",response.getOutputStream());
//写到文件中
//MatrixToImageWriter.writeToPath(bitMatrix,"jpg",文件路径);