網站首頁 編程語言 正文
以vue項目為例,其他類型項目其實也是一樣的
所需components:
-
QRCode
-
html2canvas
npm install qrcodejs2?-- save
npm install html2canvas --save?
?在需要使用的地方引入
import QRCode from 'qrcodejs2'
import html2canvas from 'html2canvas'
?生成二維碼
creatQrCode() {
var qrcode = new QRCode(this.$refs.qrCodeUrl, {
text: this.url + 'register?code=' + this.info.code,
colorDark: '#000000',
colorLight: '#ffffff',
width:80,
height:80,
correctLevel: QRCode.CorrectLevel.H
})
},
// this.$refs.qrCodeUrl 用來承載二維碼的容器
// text 二維碼包含的信息
// 其余配置看文檔去
dom轉圖片
toImage() {
html2canvas(this.$refs.imageWrapper).then(canvas => {
this.imgUrl = canvas.toDataURL('image/png')
if (this.imgUrl !== '') {
var a = document.createElement('a') // 創建一個a節點插入的document
var event = new MouseEvent('click') // 模擬鼠標click點擊事件
a.download = '圖片名字' // 設置a節點的download屬性值
a.href = this.imgUrl // 將圖片的src賦值給a節點的href
a.dispatchEvent(event) // 觸發鼠標點擊事件
}
})
}
// this.$refs.imageWrapper 容器,生成的圖片就是其中包含的內容
// this.imgUrl 就是生成的圖片地址
?小demo,供參考
<template>
<div class="bgBox" ref="imageWrapper">
<div class="name">{{ info.name }}</div>
<img class="bgImg" :src="img" alt="" />
<div class="qrcode" ref="qrCodeUrl"></div>
</div>
</template>
<script>
import QRCode from 'qrcodejs2'
import html2canvas from 'html2canvas'
import img from '@/assets/img/bg.jpg'
export default {
data() {
return {
info: {},
img,
// url:process.env.VUE_APP_BASE_API
url: 'https://baidu.com/'
}
},
mounted() {
this.info = this.$route.query
this.creatQrCode()
this.$nextTick(() => {
this.toImage()
})
},
methods: {
// 生成二維碼
creatQrCode() {
var qrcode = new QRCode(this.$refs.qrCodeUrl, {
text: this.url + 'register?code=' + this.info.code,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.H
})
},
// dom轉圖片
toImage() {
html2canvas(this.$refs.imageWrapper).then(canvas => {
this.imgUrl = canvas.toDataURL('image/png')
if (this.imgUrl !== '') {
var a = document.createElement('a') // 創建一個a節點插入的document
var event = new MouseEvent('click') // 模擬鼠標click點擊事件
a.download = '圖片名字' // 設置a節點的download屬性值
a.href = this.imgUrl // 將圖片的src賦值給a節點的href
a.dispatchEvent(event) // 觸發鼠標點擊事件
}
})
}
}
}
</script>
<style lang="less" scoped>
.bgBox {
position: relative;
width: 750px;
height: 1334px;
.bgImg {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
}
.name {
position: absolute;
top: 64px;
left: 330px;
z-index: 2;
font-size: 42px;
}
.qrcode {
position: absolute;
bottom: 44px;
left: 40px;
width: 160px;
height: 160px;
}
}
</style>
原文鏈接:https://blog.csdn.net/qq_42044542/article/details/122111798
相關推薦
- 2023-01-31 GraphQL在Django中的使用教程_python
- 2022-12-31 Android入門之onTouchEvent觸碰事件的示例詳解_Android
- 2023-03-27 react+antd?select下拉框實現模糊搜索匹配的示例代碼_React
- 2022-07-03 C語言詳細分析講解內存管理malloc?realloc?free?calloc函數的使用_C 語言
- 2022-04-11 C++中為什么要使用動態內存_C 語言
- 2022-10-29 Centos8系統配置Redis實現開機自啟
- 2023-01-20 Go語言實現定時器的原理及使用詳解_Golang
- 2022-07-19 Nacos注冊中心配置用法解析
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支