springboot整合hutool生成二维码

一、导依赖 

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.3.10</version>
</dependency>
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.3.3</version>
</dependency>

 

二、工具类

import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeException;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.io.IOException;

@Service

public class QRCodeService {
    // 自定义参数,这部分是Hutool工具封装的
    private static QrConfig initQrConfig() {
        QrConfig config = new QrConfig(300, 300);
        // 设置边距,既二维码和背景之间的边距
        config.setMargin(3);
        // 设置前景色,既二维码颜色(青色)

        config.setForeColor(Color.CYAN);
        // 设置背景色(灰色)
        config.setBackColor(Color.GRAY);
        return config;
    }

    /**
     * 生成到文件
     *
     * @param content
     * @param filepath
     */
    public void createQRCode2File(String content, String filepath) {

            QrCodeUtil.generate(content, initQrConfig(), FileUtil.file(filepath));


    }

    /**
     * 生成到流
     *
     * @param content
     * @param response
     */
    public void createQRCode2Stream(String content, HttpServletResponse response) {

        try {
            QrCodeUtil.generate(content, initQrConfig(), "png", response.getOutputStream());

        } catch (IOException e) {
            e.printStackTrace();
        }


    }
}

三、controller调用

String userName = user.getUserName();
此处注意路径要写到具体图片名,写文件夹会报错
//生成到图片文件
qrCodeService.createQRCode2File(userName,"D://img//11.jpg");

//
生成到流

qrCodeService.createQRCode2Stream(userName, response);
return 到那个页面,会在哪个页面显示
posted @ 2021-12-07 15:28  静静奇女子  阅读(828)  评论(0编辑  收藏  举报