一篇文章理解使用qrcode生成二维码并压缩打包
实现效果如下
点击下载压缩包结果
解压过后图片预览
需要使用到的工具库如下
示例demo如下
-
<script setup>
-
import { ref,onMounted } from 'vue'
-
import QrCode from 'qrcode'
-
import html2canvas from 'html2canvas'
-
import JsZip from 'jszip'
-
import {saveAs} from 'file-saver'
-
-
// 二维码父容器
-
let divRef = ref('')
-
// 生成二维码
-
let qrImg = ref('')
-
// 存储base64
-
let base64 = ref('')
-
-
QrCode.toDataURL('https://www.csdn.net/',{
-
width:200,
-
height:200,
-
margin:5, //外边距
-
color:{
-
dark:'#f00',//前景色
-
light:'#00f' //背景色
-
}
-
}).then(res=>{
-
console.log(res);
-
qrImg.value = res
-
})
-
-
// 生成带文字的二维码
-
// html2canvas获取到DOM
-
// 通过canvas将DOM下的东西画出来
-
// 转化成base64的方式来实现
-
// 有些大图,小程序会提示影响使用,强制退出
-
// 可以把base64 再转换成二进制形式,体积会缩小一倍左右
-
-
// 等二维码生成之后再用html2canvas绘制
-
const imgLoad = ()=>{
-
html2canvas(divRef.value,{
-
width:220,
-
height:260
-
}).then(d=>{
-
console.log(d);
-
const baseContent = d.toDataURL('image/png')
-
// console.log(base64);
-
base64.value = baseContent
-
})
-
}
-
-
// 下载压缩包
-
const down = (n)=>{
-
const zip = new JsZip()
-
console.log(n);
-
// 去掉该返回数据逗号前面的数据
-
zip.file('二维码图片.png',n.split(',')[1],{base64:true})
-
zip.generateAsync({type:'blob'})
-
.then(content=>{
-
saveAs(content,'二维码压缩包.zip')
-
})
-
}
-
-
-
</script>
-
-
<template>
-
<div ref="divRef" class="qrTxSty">
-
<img :src="qrImg" alt="" @load="imgLoad">
-
<p>我是Deng</p>
-
</div>
-
<button @click="down(base64)" style="margin: 0 auto;">下载压缩包</button>
-
</template>
-
-
<style scoped>
-
div{
-
margin: 10px;
-
}
-
p{
-
margin: 0;
-
padding: 0;
-
}
-
.qrTxSty{
-
width: 200px;
-
background: rgb(160,160,160);
-
padding: 10px;
-
color: #fff;
-
text-align: center;
-
}
-
</style>
-
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghgace
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13