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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 单片机应用基础知识_51单片机基础知识总结

    单片机应用基础知识_51单片机基础知识总结单片机——硬件基础知识宗旨:技术的学习是有限的,分享的精神是无限的。1、单片机内部资源STC89C52:8KFLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源(1)Flash(硬盘)——程序存储空间——擦写10万次,断电数据不丢失,读写速度慢(2)RAM(内存)——数据存储空间——断电数据丢失

    2025年10月3日
    4
  • navicat for mysql 15.4 激活码_通用破解码

    navicat for mysql 15.4 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    155
  • 二进制和十进制的转换机制是什么?_转化成二进制

    二进制和十进制的转换机制是什么?_转化成二进制一、十进制转换成二进制1.1正整数转二进制要点:除二取余,倒序排列,高位补零。方法:将正的十进制数除以二,得到的商再除以二,依次类推直至商为0或1时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零。注:计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以,位数不够时,高位补零。1.2负整数转二进制方法:先将对应的正整数转换成二进制后,对二进制取…

    2022年10月18日
    0
  • Winform布局美化样例

    Winform布局美化样例做了好多年Winform的程序的开发,主窗口的界面设计一般都要求做的更好一些,可以根据不同的系统功能模块进行归类整合,能使客户迅速寻找到相关功能的同时,也能感觉到整体性的美观大方,因此主窗口的界面设计总是会精益求精,力求做到更好用、更美观,这样才能吸引客户使用。目前的主体界面设计,可以使用很多控件进行美化,这样能使得开发者能够迅速开发好美观的界面,也可以使得界面总体性有一个统一、规范的基准。一般推

    2022年5月28日
    35
  • [SpringCloud系列004] SpringCloud和dubbo有哪些区别?

    [SpringCloud系列004] SpringCloud和dubbo有哪些区别?原https://blog.csdn.net/anningzhu/article/details/76599875一.两者的模块组成:1、Dubbo主要分为服务注册中心,服务提供者,服务消费者,还有管控中心;2、相比起Dubbo简单的四个模块,SpringCloud则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,…

    2022年5月20日
    35
  • super vlan原理_super vlan应用场景

    super vlan原理_super vlan应用场景SuperVLAN主要通过实现多个VLAN共用同一个IP网段,从而达到节省IP地址资源的目的。

    2022年9月19日
    2

发表回复

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

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