网站首页 > java教程 正文
背景
昨天有一个需求,通过扫描二维码来查看详情,一开始去查资料发现都是写一个复杂的工具类,然后再在接口中调用,感觉很麻烦,突然想起来有Hutool工具类,于是就看了一下官方文档,中间不是很顺利,于是想记录一下这次的操作。(hutool的官方文档我放在评论区了)
后端:Spring-boot
前端:Vue
下面直接上代码
后端
package 自己的包名;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
/**
* 生成二维码的工具类
* @return Base64编码的字符串
**/
public class QrCodeGenerator {
/**
* 生成二维码并返回Base64编码的字符串
*
* @param content 二维码内容
* @param width 二维码宽度
* @param height 二维码高度
* @return Base64编码的字符串
*/
public static String generateQrCode(String content, int width, int height) {
// 生成二维码图片
BufferedImage image = QrCodeUtil.generate(content, width, height);
// 将二维码图片转换成Base64编码的字符串
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImgUtil.writePng(image, outputStream);
return "data:image/png;base64," + Base64.encode(outputStream.toByteArray());
}
}
//方法中直接调用刚才的工具类,三个参数分别为你要扫二维码后看到的内容,二维码宽,高
//生成后返回给前端一个Base64编码的字符串
String QRCodeString = QrCodeGenerator.generateQrCode("https://www.toutiao.com/c/user/token/MS4wLjABAAAAeyCJAoPTA1AU8m0fecG-1W3yZg_PBmHYJ7TMXSyzHw7kspNBNKHsd4wf0zmtd3XJ/?source=mine_profile&tab=article",130,130);
entity.setQRCodeString(QRCodeString);
实体中属性
/**
* 二维码图片转换成Base64编码的字符串
*/
@TableField(exist = false)
private java.lang.String QRCodeString;
前端
//qrCodeUrl就是后台传过来的Base64编码的字符串
<div class='carousel-second'>
<td>
<p style="display: inline;color: #92979C;font-size: 14px;float: left;width:43%;margin-top: 5%">房源信息二维码:</p>
<img style="float: right;width: 47%;margin-right: 28px" :src="qrCodeUrl">
</td>
</div>
data() {
return {
qrCodeUrl:'',
}
},
methods: {
//查询详情(后台生成二维码)
queryDetailById(brandId) {
let that = this
getAction(that.url.queryDetail, {
brandId: brandId
}).then(res => {
if (res.success) {
that.setInfoMessage(res.result)
}
that.loadding = false
})
},
setInfoMessage(info) {
this.houseInfo = info.records[0]
//二维码 Base64编码的字符串
this.$set(this,'qrCodeUrl',this.houseInfo.qrcodeString)
},
}
成功后,看前端控制台请求网址应该是这样的
哦,对了,二维码还可以中间加入logo和底部加文字,感兴趣的小伙伴可以评论区讨论一下。
如果还有什么问题,欢迎大家私信我!我是Java-Talk,下期见!
猜你喜欢
- 2024-09-27 运维干货来啦:Jenkins+gradlew自动构建android项目提供下载链接和二维码下载
- 2024-09-27 基于 Spring Boot 和 WxJava 实现网站接入微信扫码登录
- 2024-09-27 基于token的多平台身份认证架构设计
- 2024-09-27 在线二维码生成器有哪些?微信二维码转换成链接如何实现?
- 2024-09-27 扫二维码提货系统自己建,系统搭建与操作指南分享
- 2024-09-27 PDF文件添加二维码水印(pdf二维码怎么弄出来扫码)
- 2024-09-27 掏出手机,扫一扫,即刻登录——SpringBoot实现二维码扫码登录
- 2024-09-27 短连接生成器有哪些?制作二维码生成器有哪些?
- 2024-09-27 慕课网Java相关课程学习项目源码,以及源码地址
- 2024-09-27 二维码扫描优化(微信二维码优化)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)