首页 > 其他分享 >前端生成二维码及把页面转为图片保存到本地

前端生成二维码及把页面转为图片保存到本地

时间:2023-04-27 10:23:54浏览次数:42  
标签:前端 html2canvas var 二维码 QRCode 图片 imgUrl 页面

前端生成二维码及把页面转为图片保存到本地

Bayi·

于 2021-12-23 17:08:37 发布

847
 收藏 3
文章标签: 前端 javascript 生成二维码 页面转图片 vue
版权
以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>
文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为CSDN博主「Bayi·」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42044542/article/details/122111798

 

标签:前端,html2canvas,var,二维码,QRCode,图片,imgUrl,页面
From: https://www.cnblogs.com/webSnow/p/17358182.html

相关文章

  • vue 前端生成二维码,并转换为图片
    vue前端生成二维码,并转换为图片~牧马~于2021-05-2715:08:03发布2760收藏7分类专栏:vue文章标签:vue生成二维码自动生成的二维码转图片版权这篇文章主要是分享下自己的收获,也是自己遇到的问题:前端如何自己生成二维码?前端如何将生成的二维码转成图片并展示?......
  • 无界微前端方案官方示例,main-vue 项目打包之后 访问index.html页面空包,控制台报资源错
    报错信息: 修改方案: publicPath:“./”修改为如上配置即可。......
  • 前端跨域解决方案——CORS
    CORS(跨来源资源共享)是一种用于解决跨域问题的方案。CORS(跨来源资源共享)是一种安全机制,用于在浏览器和服务器之间传递数据时,限制来自不同域名的请求。在前端开发中,当通过XMLHttpRequest(XHR)或FetchAPI发送跨域请求时,如果服务器没有正确配置CORS,浏览器会阻止该请求,从而导致请求......
  • 前端隐藏和显示div的方式js和beetle:
    方式一:设置元素style对象中的display属性1、vart=document.getElementById('demo');//选取id为test的div元素2、t.style.display='none';//隐藏选择的元素3、t.style.display='block';//以块级样式显示方式二:设置元素style对象中的visibility属性1、vart=documen......
  • 关于idea使用Tomcat打开jsp文件页面失败的问题的解决
    问题描述在idea里面使用Tomcat打开jsp文件频繁报错,检查相关路径也没有任何问题,而且用来测试的jsp文件还是最简单的形式,困扰了大概5分钟左右问题解决经过查询百度可知,这次不是路径的问题,而是需要将我们在web文件夹里面创建的jsp文件复制到target文件夹里面保持与target文件夹里......
  • vue-router4 配置懒加载 页面加载时展示loading
     懒加载写法{path:"/",name:"index",component:()=>import("../views/Home.vue"),}创建Loading组件并引入到顶层组件中使用store控制loading组件是否展示包装懒加载写法constlazyLoad=(componentPath)=>{//注意:componentPath不......
  • 前端面试八股文
    1.说说你对盒子模型的理解盒子模型分为border边距,content内容,margin外边距,padding内边距盒子模型分为俩种模式一种标准模式,一种IE模式标准模式计算方式:box-zing:content-boxIE模式计算方式:box-zing:border-box2.css选择器有哪些?优先级?哪些属性可以继承?ID选择器-类选择器-标签选择......
  • [转]前端传嵌套对象参数给spring mvc
    在使用springmvc开发web应用时,感觉springmvc的controller方法能自动将参数注入到方法的参数对象中,极大的方便了开发。但是,在遇到有嵌套对象的时候,比如订单对象有个属性是用户对象,就不好处理了。一种情况是,传递的参数都是作为post方法的请求体,我们可以用RequestBody注解。但是当条......
  • 在毫秒量级上做到“更快”!DataTester 助力飞书提升页面秒开率
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 用户体验是决定互联网产品能否长久生存的基础,每一个基于产品功能、使用、外观的微小体验,都将极大关系到用户留存影响。本文将讲述火山引擎A/B测试(DataTester)助力企业协作平台飞书进行用......
  • 访问页面中嵌入的表格
       如上图,点击ExporttoExcel就会下载一个Exce文件,但是当我们查看元素时,,并没有excel的url。查看网络的文档时,也没有excel的url这是我们清空网络的页面,重新点击页面的ExporttoExcel按钮,就会出现三个响应文件,并下载了一个excel文件。逐个分析,    如果我们......