龙空技术网

Hutool工具类生成二维码,PC端展示(保姆教程)

JAVATALK 93

前言:

目前姐妹们对“ashxjquery上传图片”可能比较着重,咱们都想要了解一些“ashxjquery上传图片”的相关内容。那么小编在网摘上收集了一些有关“ashxjquery上传图片””的相关文章,希望同学们能喜欢,各位老铁们快快来了解一下吧!

背景

昨天有一个需求,通过扫描二维码来查看详情,一开始去查资料发现都是写一个复杂的工具类,然后再在接口中调用,感觉很麻烦,突然想起来有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(";,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)			}, }

成功后,看前端控制台请求网址应该是这样的

二维码的Base的64编码的字符串

哦,对了,二维码还可以中间加入logo和底部加文字,感兴趣的小伙伴可以评论区讨论一下。

如果还有什么问题,欢迎大家私信我!我是Java-Talk,下期见!

标签: #ashxjquery上传图片 #后端生成二维码还是前端