Java生成二维码

说明:

        二维码的实质就是一个链接地址。此处生成二维码我们使用Hutool工具类已经封装好的方法。

准备:

        1:导入依赖:

       

        <!-- 二维码相关依赖 -->
        <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>

        <!-- Hutool工具类 -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.6.3</version>
        </dependency>

2:二维码配置文件

import cn.hutool.extra.qrcode.QrConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.awt.*;

/**
 * 二维码配置类
 */
@Configuration
public class EwmCode {
    @Bean
    public QrConfig qrConfig(){
        QrConfig qrConfig=new QrConfig();
        qrConfig.setBackColor(Color.white.getRGB());
        qrConfig.setForeColor(Color.black.getRGB());
        return qrConfig;
    }
}

3:二维码工具类

        说明:hutool工具类提供了丰富的二维码生成方法,此处封装的工具类引用的是hutool工具类中提供的生成二维码方法。

import cn.cdjs.utils.http.AssertUtils;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 二维码工具类
 */
@Component
public class EwmUtils {
    @Autowired
    private QrConfig qrConfig;

    /**
     * 二维码生成base64字符串
     * @param content 跳转地址(即扫码后跳转的地址,可以是后端项目地址,用户扫码后填写数据提交到后台)
     * @param imageType 图片类型
     */
    public String generateBase64(String content,String imageType) {
        AssertUtils.isNotBlank(content,"生成二维码数据不能为空");
        return QrCodeUtil.generateAsBase64(content, qrConfig, imageType);
    }
}

4:测试

    /**
     * 生成二维码测试
     */
    @org.junit.Test
    public void ewmTest(){
        // 扫码跳转地址
        String address = "https://www.baidu.com/";
        // 生成二维码的图片类型
        String imageType = "PNG";
        // 调用生成二维码方法
        String ewmInfo = ewmUtils.generateBase64(address, imageType);
        System.err.println("二维码内容:" + ewmInfo);
    }

输出:

二维码内容:data:image/PNG;base64,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

使用Html将输出二维码字符串数据转换为图片:

        说明:<img src="此处内容为生成二维码输出的字符串数据"

​<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>二维码</title>
</head>
<body>
    <img src="data:image/PNG;base64,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">
</body>
</html>

使用浏览器打开此Html:(生成的二维码被CSDN屏蔽了)

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值