java生成多种类型扫描码的方式

 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",文件路径);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值