pom引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>eureka-demo</artifactId>
<groupId>com.example</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>base64</artifactId>
<dependencies>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.16</version>
</dependency>
</dependencies>
</project>
补充类,生成对应的字符串
package com.ym.util;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import java.io.ByteArrayOutputStream;
public class QRCodeUtil {
public static String getQRCodeBase64(String text) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
QrCodeUtil.generate(text, new QrConfig(), ImgUtil.IMAGE_TYPE_PNG, outputStream);
byte[] pngData = outputStream.toByteArray();
return "data:image/png;base64," + Base64.encode(pngData);
}
}
QrConfig里面默认设置了宽高跟颜色(宽高300px,背景白色,前置黑色),可以不用设置(有需要的也可以自行宽高,颜色RGB位256*256*256)。
这里以百度的URL为例,生成base64图片字符串。
public static void main(String[] args) {
System.out.println(QRCodeUtil.getQRCodeBase64("https://www.baidu.com/"));
}
字符串太长不显示了。
如图。