生成二维码并下载

npm install vue-qriously -S
//入口js文件 main.js
import Vue from 'vue';
import VueQriously from 'vue-qriously';
Vue.use(VueQriously);

  

<template>
    <qriously id='mycanvas' :value="value" :size="size" :backgroundAlpha="backgroundAlpha"/> 
</template> 
<script>
 export default {
   data(){
     return { 
       // 可以自定义,必填项。 
       value: 'http://lxchuan12.github.io/', 
       // 二维码大小 默认 100 
       size: 80, // 背景透明度,默认透明 0 
       backgroundAlpha: 1, 
    } 
  } 
} 
</script>

  

下载二维码

methods{
     downqriousl(){
            var can = document.getElementById("mycanvas");
            var canvas = can.querySelector('canvas')
            var type ='png';//你想要什么图片格式 就选什么吧
            var imgdata=canvas.toDataURL(type);
            //2.0 将mime-type改为image/octet-stream,强制让浏览器下载
            var fixtype=function(type){
                type=type.toLocaleLowerCase().replace(/jpg/i,'jpeg');
                var r=type.match(/png|jpeg|bmp|gif/)[0];
                return 'image/'+r;
            };
            imgdata=imgdata.replace(fixtype(type),'image/octet-stream');
            //3.0 将图片保存到本地
            var savaFile=function(data,filename)
            {
                var save_link=document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
                save_link.href=data;
                save_link.download=filename;
                var event=document.createEvent('MouseEvents');
                event.initMouseEvent('click',true,false,window,0,0,0,0,0,false,false,false,false,0,null);
                save_link.dispatchEvent(event);
            };
            var filename=''+new Date().getSeconds()+'.'+type;
            //我想用当前秒是可以解决重名的问题了 不行你就换成毫秒
            savaFile(imgdata,filename);
        }      
}

  

 
posted @ 2018-11-16 16:34  我以为你不在乎  阅读(863)  评论(0编辑  收藏  举报