♥️作者:小宋1021
🤵‍♂️个人主页:小宋1021主页
♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!


Hutool

        Hutool 是一款小而全的 Java 工具类库,几行代码就能完成 Excel 读写、随机数、二维码、图形验证码、邮件发送、Bean↔JSON 互转等日常需求,我们日常开发几乎离不开它。除此之外,它还内置日期处理、HTTP 客户端、加解密、文件监控、缓存、正则、分布式 ID 等实用模块,下面我们来介绍一下Hutool的生成二维码功能。

功能演示

引入Hutool工具包

  <!--hutool万能工具包-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.21</version>
        </dependency>
        <!--二维码工具包-->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.4.1</version>
        </dependency>

然后创建一个类,就开始编写代码测试啦

生成二维码

我写在controller里了,方便使用apiPost测试,所以我就给大家展示一下controller到实现类的方法:

controller:

   @PostMapping("/createQRCode")
    @Operation(summary = "生成二维码测试")
    public CommonResult<Boolean> createQRCode() {
        bookBusService.createQRCode();
        return success(true);
    }

实现类:

@Override
    public void createQRCode() {
        // 三个参数分别是 扫码内容 宽高
        QrCodeUtil.generate("http://www.baidu.com/",
                500, 500,
                // 生成路径 切记换成自己的
                FileUtil.file("E:\\twoCode\\小宋的二维码.jpg"));
    }

QrCodeUtil.generate()里面有三个参数,分别是扫码跳转的内容,我这里是跳转的百度官网,另外两个是宽高。这个是他的原生代码

FileUtil.file()是为了指定二维码文件生成路径。到这里我们就写好了,我们使用apiPost测试一下。

apiPost返回true证明请求成功了,我们看一下指定路径下是否有该文件。

已经生成指定的二维码文件,扫一下确实可以跳转到百度官网。

自定义背景图片二维码

如果觉得单独的一个二维码很单调,没关系,我们可以自定义背景

代码如下

   @Override
    public void createQRCode() {
        QrConfig config = new QrConfig(500, 500);
        config.setImg("E:\\idea.jpg");
        config.setErrorCorrection(ErrorCorrectionLevel.Q);
        QrCodeUtil.generate("https://www.baidu.com/", config, FileUtil.file("E:\\twoCode\\小宋的二维码2.jpg"));
    }

QrConfig config = new QrConfig(500, 500);
        config.setImg("E:\\idea.jpg");

这两句话设置了生成二维码的宽高和二维码背景,我们运行一下代码看一下。

apiPost请求成功,我们查看是否已经生成完毕。

指定文件夹下已生成二维码文件

识别二维码内容

上面介绍了如何生成二维码,我们如果想要识别二维码内容,需要扫码

那么下面介绍如何使用代码识别二维码里面的内容

   @Override
    public void createQRCode() {
        String decode = QrCodeUtil.decode(FileUtil.file("E:\\twoCode\\小宋的二维码2.jpg"));
        System.out.println(decode);
    }

让我们请求一下试试,看看是否会在控制台输出百度的网页地址。

apiPost显示请求成功,并且在控制台上也正确输出百度的网页地址。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐