在vue中利用vue-qr插件动态生成二维码并嵌入LOGO

  收到需求要生成二维码的时候刚进项目组不久,接触vue也才一两个星期,还处于懵逼状态。

  本小白的第一反应就是百度二维码的生成方法,网上有很多大神给出解决方案,最开始本小白以为是在后台生成图片然后传到前台页面,后来发现可以直接在前端用js生成,网上查到的大部分都是用jquery.qrcode.js配合utf.js(为了支持中文)和jquery-1.8.0.js来实现,亲测可行(但本白只在原生HTML中实现,vue中死活报错:“找不到qrcode方法”,是不是本小白没找准姿势,哪位大神求告知!)如下图:

这是生成出来的二维码:

  到这里问题还是没有解决,于是又继续找,发现一位大神的博客指了条明路:使用 vue-qart 和 vue-qr 这两个插件(插件使用前记得先安装:npm install vue-qr 有cnpm最好用cnpm install vue-qr,本小白最开始用npm结果炸了,换cnpm才好)可以实现。这里本小白就用的vue-qr,为了这一功能能够复用,先写了一个组件,供其他页面调用:

附上代码:

 1 <template>
 2     <el-dialog :width= "dlgWidth" :title="title" :visible.sync="visible" :close-on-click-modal="false" @close="closePanel">
 3       <div id="qrcodeId" style="width: 200px; height: 250px; margin-left:70px; margin-top:30px">
 4             <vue-qr :text="config.value" :logoSrc="config.imagePath" :size="200" :margin="0"></vue-qr>
 5         </div>
 6     </el-dialog>
 7 </template>
 8
 9 <script>
10 import VueQr from ‘vue-qr‘
11
12 export default {
13     components: { VueQr },
14     props: ["show"],
15   data() {
16     return {
17             title: "扫描二维码下载APP",
18             visible: this.show,
19             dlgWidth: _const.POPWND_SMALL_WIDTH,
20             config: {
21           value: ‘‘,//显示的值、跳转的地址
22           imagePath: require(‘@/images/logo.png‘)//中间logo的地址
23         }
24     };
25     },
26     methods: {
27         initQRCode(qrcodeUrl) {
28             this.config.value = qrcodeUrl;
29         },
30    closePanel()
31    {
32     this.$emit(‘update:show‘,false);
33    }
34     },
35   watch: {
36     show(val) {
37       this.visible = val;
38     }
39   }
40 }
41 </script>

组件代码

调用上面的组件:

父页面中触发二维码生成现实的方法:

满心欢喜写完了,结果二维码根本没出来,按照大神的博客里说的去掉logSrc确实可以生成出二维码,但是图片的问题依然没解决,一开始以为是路径问题,换了几个图片突然成功了,于是本小白又按照同样的方式将目标图片路径放进去,结果还是不行,但是后来发现同一个文件夹里的另外一个图片可以显示出来,又试了几个其他图片,也是有的能显示有的不能,我就开始怀疑是不是图片大小有要求,连续用大小不同的图片尝试多次后,我肯定了这个猜想,经过多次测试,发现这个临界值在10000字节左右,只能显示10000字节以内的图片。

  问题找到了,现在只能将目标图片压缩一下,找了个网站压缩后图片的效果跟原图很接近,连续压缩了好几遍才达到要求,这里是本白压缩图片的网站,大神们有其他更好更便捷的网站可以分享一下嘛?3Q。

  纯小白,若有错误,欢迎大神批评指点!!!明天还要加班,洗洗睡了,狗命要紧!

原文地址:https://www.cnblogs.com/99ll/p/10181611.html

时间: 2024-08-04 16:39:36

在vue中利用vue-qr插件动态生成二维码并嵌入LOGO的相关文章

Jquery.Qrcode在客户端动态生成二维码并添加自定义Logo

0 Jquery.Qrcode简介 Jquery.Qrcode.js是一个在浏览器端基于Jquery动态生成二维码的插件,支持Canvas和Table两种渲染方式,它的优点是在客户端动态生成,减轻了服务端压力,尤其是在大量使用二维码的系统中.Jquery.Qrcode主要包括以下参数设置: render 定义二维码的渲染方式,有table和canvas两种渲染方式 width 定义二维码的宽度 height 定义二维码的高度 text 定义二维码内容 typeNumber 二维码的计算模式 一般

在Vue项目中动态生成二维码 阿星小栈

一.使用jquery.qrcode生成二维码 1.首先在页面中加入jquery库文件和qrcode插件 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.qrcode.min.js"></script> 2.在页面中需要显示二维码的

Android Studio - 第四十七期 毛玻璃效果以及动态生成二维码以及增大点击热区

最近回看撸撸的代码,有一些自定义的view写法很不错,下面封装出来,希望能帮到大家: 1.毛玻璃效果:BitmapUtils package com.example.p030_popbgqcode.utils; import android.content.Context; import android.graphics.Bitmap; import android.renderscript.Allocation; import android.renderscript.Element; imp

在Excel中,不利用任何第三方工具,生成二维码

有同事提需求,要批量生成二维码.谈了之后,我觉得可以做个excel文件,把要打印的内容放进去,然后给每行数据生成一个二维码.下一步就要在Excel里面生成二维码.问了一下度娘,貌似都得利用一些第三方工具,但是公司的政策比较严,任何软件都必须是正版(这种需求,短时间内估计不会批准预算买软件).因此想不靠第三方的东西,就用纯粹的vba,去生成二维码.这个时候就要感谢一下谷歌,很快在StackOverflow上找到了我想要的源码. 这是StackOverflow的原帖 原帖的最受欢迎答案是由Jonas

批量动态生成二维码

<script type="text/javascript" src="/site_media/js/qrcode.js"></script> // 生成二维码 $(".qrcode").each(function(){ var timestamp = new Date().getTime() + Math.random().toString().split(".")[1]; // 时间戳 + 随机数

利用vcard和qrcode.js生成二维码导入联系人

vCard是一种容许交换个人信息的数据规范,vCard数据格式的标识符是VCARD,vCard数据格式行是: 类型 [;参数]:值,具体的介绍百度都有,我们可以通过vcard来进行通讯录的保存,名片的交换 基本格式: BEGIN:VCARD N:姓;名;;; FN: 名 姓 TITLE:XX集团前端 ADR;WORK:;;北京市五环区GT路19号;;;; TEL;CELL,VOICE:159351111111 TEL;WORK,VOICE:010-6666666 URL;WORK:www.gt.

PHP QR CODE 类库生成二维码

<?php /** * 生成简单的二维码 * 测试已通过 */ // include 'phpqrcode.php'; // QRcode::png('http://www.baidu.com'); // exit; /** * 生成带logo的图片 * */ include 'phpqrcode.php'; $value = 'http://www.baidu.com'; //二维码内容 $errorCorrectionLevel = 'L';//容错级别 $matrixPointSize =

vue中,使用手机钉钉扫描二维码登录

最新项目要做一个,使用手机钉钉扫描二维码登录pc系统的功能,手机扫码二维码后,会弹出一个确定登录的页面,点击确定之后,pc端就会登录进去 第一步:查看钉钉开发平台 钉钉开发平台(钉钉官网) 从官网中了解到: 使用钉钉js-api提供的获取免登授权码接口获取CODE,此jsapi无需鉴权 然后通过CODE,获取用户身份信息 第二步:pc页面 npm install v-qrcode --save 并在页面中注册引入 其中  qrcode是二维码内容,在data中定义, 调用后端接口,获取钉钉登录二

js、jq动态生成海报+动态生成二维码+Logo图片

前言: 最近做项目的时候移动端的发现板块作品需要生成海报,经查阅各种博客发现并没有很多资源,自己就着手写了一个分享给大家 废话不再多说,我们先看一下效果: 我是一名后端程小猿,写成这样已经很不错了,自我感觉良好 哈哈…… 废话不多说,我们开始上代码(怕对小白不友善,这里直接上源码,我自己就是小白 哈哈……): 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5