網站首頁 編程語言 正文
以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
相關推薦
- 2022-06-28 C++實現String與UF8互轉_C 語言
- 2022-09-24 python的numpy模塊實現邏輯回歸模型_python
- 2022-10-23 C#實現觀察者模式(Observer?Pattern)的兩種方式_C#教程
- 2021-10-04 Flutter輸入框TextField屬性及監聽事件介紹_Android
- 2022-04-10 Blazor數據綁定用法_基礎應用
- 2022-06-25 Android開發壁紙的驗證設置和確認功能實現demo_Android
- 2022-04-17 uniapp文本支持換行,后端返回一串文本
- 2022-06-09 ASP.NET?Core使用EF創建模型(索引、備用鍵、繼承、支持字段)_實用技巧
- 最近更新
-
- 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同步修改后的遠程分支