使用Hutool工具包生成二维码

目录

使用

生成二维码

自定义参数

1.基本参数设定

2.附带logo小图标

3.调整纠错级别

识别二维码


使用

引入Hutool工具包依赖:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.23</version>
</dependency>

考虑到Hutool的非强制依赖性,因此zxing需要用户自行引入:

<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.3.3</version>
</dependency>

生成二维码

例如将个人博客主页的url生成为二维码,微信扫一扫可以看到H5主页哦:

// 生成指定url对应的二维码到文件,宽和高都是300像素
QrCodeUtil.generate("https://blog.csdn.net/qq_74312711?spm=1000.2115.3001.5343", 300, 300, FileUtil.file("D:\\develop\\[a04]\\qrcode.jpg"));

效果qrcode.jpg:

自定义参数

1.基本参数设定

通过QrConfig可以自定义二维码的生成参数,例如长、宽、二维码的颜色、背景颜色、边距等参数,使用方法如下:

QrConfig config = new QrConfig(300, 300);
// 设置边距,既二维码和背景之间的边距
config.setMargin(3);
// 设置前景色,既二维码颜色(青色)
config.setForeColor(Color.CYAN.getRGB());
// 设置背景色(灰色)
config.setBackColor(Color.GRAY.getRGB());

// 生成二维码到文件,也可以到流
QrCodeUtil.generate("https://blog.csdn.net/qq_74312711?spm=1000.2115.3001.5343", config, FileUtil.file("D:\\develop\\[a04]\\qrcode.jpg"));

效果qrcode.jpg:

2.附带logo小图标

QrCodeUtil.generate(//
        "https://blog.csdn.net/qq_74312711?spm=1000.2115.3001.5343", //二维码内容
        QrConfig.create().setImg("D:\\develop\\[a04]\\logo.jpg"), //附带logo
        FileUtil.file("D:\\develop\\[a04]\\qrcode.jpg")//写出到的文件
);

效果如图:

3.调整纠错级别

很多时候,二维码无法识别,这时就要调整纠错级别。纠错级别使用zxing的ErrorCorrectionLevel枚举封装,包括:L、M、Q、H几个参数,由低到高。低级别的像素块更大,可以远距离识别,但是遮挡就会造成无法识别。高级别则相反,像素块小,允许遮挡一定范围,但是像素块更密集。

QrConfig config = new QrConfig();
// 高纠错级别
config.setErrorCorrection(ErrorCorrectionLevel.H);
QrCodeUtil.generate("https://blog.csdn.net/qq_74312711?spm=1000.2115.3001.5343", config, FileUtil.file("D:\\develop\\[a04]\\qrcode.jpg"));

效果如图:

识别二维码

// decode -> "https://blog.csdn.net/qq_74312711?spm=1000.2115.3001.5343"
String decode = QrCodeUtil.decode(FileUtil.file("D:\\develop\\[a04]\\qrcode.jpg"));
  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值