vue生成二维码并保存图片_vue实现扫描二维码

vue生成二维码并保存图片_vue实现扫描二维码<template><div><qrcode-vueid=”qrcodeBox”:size=”qrcodeVue.size”:value=”qrcodeVue.value”:logo=”qrcodeVue.logo”:bgColor=”qrcodeVue.bgColor”:fgColor=”qrcodeVue.fgColor”></qrcode-vue&gt

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

<template>
  <div>
    <qrcode-vue
      id="qrcodeBox"
      :size="qrcodeVue.size"
      :value="qrcodeVue.value"
      :logo="qrcodeVue.logo"
      :bgColor="qrcodeVue.bgColor"
      :fgColor="qrcodeVue.fgColor"
    ></qrcode-vue>
    <!-- <a-button @click="getQRcode"></a-button> -->
    <a-button @click="downsQRcode">下载图片</a-button> 
  </div>
</template>

<script>
import qrcodeVue from 'qrcode-vue'
export default {
  components: {
    qrcodeVue
  },

  data() {
    return {
      qrcodeVue: {
        size: 250,
        bgColor: '#fff',
        fgColor: '#000',
        value: '', //二维码地址
        logo: require('@/assets/logo.png') //logo图片
      }
    }
  },
  methods: {
    //生成二维码
    getQRcode() {
      this.qrcodeVue.value = '吾问无为谓无' // 二维码内容
    },
    //下载图片
    downsQRcode() {
      //找到canvas标签
      let myCanvas = document
        .getElementById('qrcodeBox')
        .getElementsByTagName('canvas')
      let img = document.getElementById('qrcodeBox').getElementsByTagName('img')
      // // //创建一个a标签节点
      let a = document.createElement('a')
      // //设置a标签的href属性(将canvas变成png图片)
      let imgURL = myCanvas[0].toDataURL('image/jpg')
      let ua = navigator.userAgent
      if (ua.indexOf('Trident') != -1 && ua.indexOf('Windows') != -1) {
        // IE内核 并且  windows系统 情况下 才执行;
        var bstr = atob(imgURL.split(',')[1])
        var n = bstr.length
        var u8arr = new Uint8Array(n)
        while (n--) {
          u8arr[n] = bstr.charCodeAt(n)
        }
        var blob = new Blob([u8arr])
        window.navigator.msSaveOrOpenBlob(blob, '商品二维码' + '.' + 'png')
      } else if (ua.indexOf('Firefox') > -1) {
        //火狐兼容下载
        let blob = this.base64ToBlob(imgURL) //new Blob([content]);
        let evt = document.createEvent('HTMLEvents')
        evt.initEvent('click', true, true) //initEvent 不加后两个参数在FF下会报错  事件类型,是否冒泡,是否阻止浏览器的默认行为
        a.download = ' ' //下载图片名称,如果填内容识别不到,下载为未知文件,所以我这里就不填为空
        a.href = URL.createObjectURL(blob)
        a.dispatchEvent(
          new MouseEvent('click', {
            bubbles: true,
            cancelable: true,
            view: window
          })
        ) //兼容火狐
      } else {
        //谷歌兼容下载
        img.src = myCanvas[0].toDataURL('image/jpg')
        // a.href = myCanvas[0].toDataURL('image/png').replace('image/png', 'image/octet-stream')
        a.href = img.src
        //设置下载文件的名字
        a.download = '商品二维码'
        //点击
        a.click()
      }
    }
  }
}
</script>

<style scoped lang=""></style>


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186484.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言运算符优先级顺序表_运算符优先级顺序

    c语言运算符优先级顺序表_运算符优先级顺序上表中可以总结出如下规律:一些容易出错的优先级问题上表中,优先级同为1的几种运算符如果同时出现,那怎么确定表达式的优先级呢?这是很多初学者迷糊的地方。下表就整理了这些容易出错的情况:这些容易出

    2022年8月2日
    12
  • a4纸两版的小册子怎么打印_word怎么打印小册子用a4

    a4纸两版的小册子怎么打印_word怎么打印小册子用a4用word打印小册子具体操作步骤:1、首先打开将要打印的文档,然后在菜单栏下面的快捷菜单栏,找到打印机的快捷图标,单击鼠标左键选择打开打印机。2、会弹出打印机设置对话框,可以进行打印前的一些细节的设置,由于是要选择打印一本小册子所以选择打印“所有页面”。3、在下面一栏是调整页面大小,也就是打印模式,选择“小册子”进行打印。4、然后下面是关于小册子的一些设置,按照自己的需要进行设置。5、设置完成以后…

    2022年9月6日
    7
  • Linux安装gcc的四种方法「建议收藏」

    Linux安装gcc的四种方法「建议收藏」相比于windows系统,Linux安装程序就比较复杂了,很多需要root用户才能安装。常见的有以下几种安装方法 源码安装 rpm包安装 yum安装(RedHat、CentOS) apt-get安装(debian,ubuntu) 源码安装以安装gcc为例,登陆https://gcc.gnu.org/,下载自己想要的版本的gcc安装包上传gcc-4.1.2.tar.gz到Linux服务器任意目录,解压解压目录执行shell命令./configurat.

    2022年5月26日
    88
  • 线段树详解 (原理,实现与应用)「建议收藏」

    线段树详解By岩之痕一:综述线段树是一种可以快速进行区间修改和区间查询的数据结构。点修改,区间修改和区间查询的复杂度都是O(log2(n))并且,线段树可以维护很多种类的信息。说到线段树就不得不提一下树状数组,树状数组维护的信息必须满足区间减法,因为树状数组只是维护1到X的信息,通过相减来得到区间信息,代码简单而且速度快,占用空间又少于线段树,所以一般情况下可以用树状数组的地方就

    2022年4月5日
    56
  • 详解自动化运维平台的构建过程[通俗易懂]

    详解自动化运维平台的构建过程[通俗易懂]2013年,我加入了聚美优品,当时成都团队仅有四五个人,负责一些辅助系统的日常运维,比如查查日志等。随着公司规模逐渐的扩大,一些重要的业务往成都迁移,这对成都团队是一个非常大的挑战。业务部署最开始是手工的,我们逐渐觉得应该有一个平台来满足我们的工作,所以我们打造了一个运维平台。本文将围绕平台里有关自动化的东西做一个介绍,当然我们是一个小团队,不足的地方请大家指正。传统运维带来的坑说到运维自动化,前…

    2022年5月17日
    64
  • 光伏发电功率预测_分布式光伏并网接入电压

    光伏发电功率预测_分布式光伏并网接入电压Reviewonprobabilisticforecastingofphotovoltaicpowerproductionandelectricityconsumption—论文阅读(1)。

    2022年10月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号