springboot通过hutool返回base64图片流

springboot通过hutool返回base64图片流

需求: 将一个前端返回的数组, 生成一个临时的二维码, 返回给前端

先引入依赖

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>4.6.1</version>
</dependency>
<!--zxing二维码生成, hutool二维码依赖 -->
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.3.1</version>
</dependency>

直接上代码

public JSONObject getVolumeIdsByQR(List<Long> volumeIds) {

        // 生成字节数组输出流
        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();

        // 生成二维码
        QrCodeUtil.generate(JSONUtil.toJsonStr(volumeIds), //二维码内容
                // setImg("image/2.jpg"), //附带logo+
                QrConfig.create().setWidth(350).setHeight(350), "png", byteOut);

        // 生成字节数组输入流
        ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
        JSONObject jsonObject = new JSONObject();

        // 从流中读取图片,返回图片文件
        BufferedImage img = ImgUtil.read(byteIn);

        // 将图片对象转换为Base64形式
        String base64 = ImgUtil.toBase64(img, "png");

        // 将base64装入jsonObject对象中
        jsonObject.put("imgUrl", base64);
        return jsonObject;
    }

工具类解析

QrCodeUtil. generate (String, QrConfig, String, OutputStream);
参数:

  • String_1: 二维码扫描后展示的值
  • QrConfig: 生成图片的配置 (长, 宽, 和中心显示的 logo 图片)
  • String_2: ImageType, 生成图片的后缀
  • OutputStream: 将文件写入到输出流
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值