Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 Vue3)

news2024/9/21 20:28:06

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 & Vue3)

在对于二维码生成中有许多组件,下面介绍关于自定义比较高的vue-qr组件,能自定义设置背景颜色、背景图片、背景Gif图、实点和空白区的颜色、中心Logo的图片和边距。

一、安装

npm install vue-qr --save

二、组件内引用VueQr

# Vue2 
import VueQr from "vue-qr";
export default {
  components: {
    VueQr
  },
};

# Vue3
import vueQr from 'vue-qr/src/packages/vue-qr.vue'

三、如何使用

1.创建简易二维码:
在这里插入图片描述

<template>
    <vue-qr
      text="https://www.baidu.com/"
      :size="200"
    ></vue-qr>
</template>

2.修改实点颜色(colorDark)和空白区颜色(colorLight):

注意:空白区颜色如果高于实点颜色,则实点颜色和空白区颜色互换!

在这里插入图片描述

<template>
    <vue-qr
      colorDark="#EE6779"  
      colorLight="#F5E1D9" 
      text="https://www.baidu.com/"
      :size="200"
    ></vue-qr>
</template>

3.添加背景图片:

注意:出现实点挡住背景无法显示完全,可通过调整dotScale大小和correctLevel来让背景图显示完全!

在这里插入图片描述

<template>
    <vue-qr 
    :size="200" 
    :bgSrc="image" 
    :correctLevel="2"  
    :dotScale="0.5" 
    text="https://blog.csdn.net/miaomiaowins">
    </vue-qr>
</template>

# Vue2
<script>
import VueQr from "vue-qr";
export default {
  data() {
    return {
      image: require("../assets/bg.jpg"),
    };
  },
  components: {
    VueQr,
  },
};
</script>

# Vue3
<script setup>
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
const image = new URL('./assets/bg.jpg', import.meta.url).href
</script>

4.添加GIF背景图片:

注意:添加Gif背景会影响性能,导致图片生成时间增加

在这里插入图片描述

<template>
    <vue-qr 
    :size="200" 
    :gifBgSrc="gifImage" 
    :correctLevel="2"  
    :dotScale="0.5" 
    text="https://blog.csdn.net/miaomiaowins">
    </vue-qr>
</template>

# Vue2
<script>
import VueQr from "vue-qr";
export default {
  data() {
    return {
      gifImage: require("../assets/bg.gif"),
    };
  },
  components: {
    VueQr,
  },
};
</script>

# Vue3
<script setup>
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
const gifImage= new URL('./assets/bg.gif', import.meta.url).href
</script>

5.放置中心Logo图标:
在这里插入图片描述

<template>
    <vue-qr 
      :bgSrc="image"
      :dotScale="0.5"
      :correctLevel="2"
      text="Hello world!"
      :logoSrc="logoSrc"
      :size="200">
    </vue-qr>
</template>

# Vue2
<script>
import VueQr from "vue-qr";
export default {
  data() {
    return {
      image: require("../assets/bg.jpg"),
      logoSrc: require("../assets/logo_1.png"),
    };
  },
  components: {
    VueQr,
  },
};
</script>

# Vue3
<script setup>
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
const image = new URL('./assets/bg.jpg', import.meta.url).href
const logoSrc = new URL('./assets/logo_1.png', import.meta.url).href
</script>

四、属性介绍

名称说明
text编码的内容
correctLevelCorrect Level 0-3 容错级别 0-3
size二维码尺寸, 长宽一致, 包含外边距
margin二维码图像的外边距, 默认 20px
colorDark实点的颜色
colorLight空白区的颜色
components阅读 ComponentOptions 了解更多信息。
bgSrc欲嵌入的背景图地址
gifBgSrc欲嵌入的背景图 gif 地址,设置后普通的背景图将失效。设置此选项会影响性能
backgroundColor背景色
backgroundDimming叠加在背景图上的颜色, 在解码有难度的时有一定帮助
logoSrc嵌入至二维码中心的 LOGO 地址
logoScale用于计算 LOGO 大小的值, 过大将导致解码失败, LOGO 尺寸计算公式 logoScale*(size-2*margin), 默认 0.2
logoMarginLOGO 标识周围的空白边框, 默认为0
logoBackgroundColor背景色,需要设置 logo margin(经过测试证明无效
logoCornerRadiusLOGO 标识及其边框的圆角半径, 默认为0
whiteMargin若设为 true, 背景图外将绘制白色边框
dotScale数据区域点缩小比例 (0 < scale < 1.0),默认为1
autoColor背景图的主要颜色将作为实点的颜色, 即 colorDark,默认 true
binarize图像将被二值化处理, 未指定阈值则使用默认值
binarizeThreshold二值化处理的阈值(0 < threshold < 255) ,默认值128
callback生成的二维码 Data URI 可以在回调中取得,第一个参数为二维码 data URL, 第二个参数为 props 传过来的 qid(因为二维码生成是异步的,所以加个 id 用于排序)
bindElement指定是否需要自动将生成的二维码绑定到HTML上, 默认是true

callback方法:

<vue-qr text="Hello world!" :callback="test" qid="testid"></vue-qr>
export default {
    methods:{
        test(dataUrl,id){
            console.log(dataUrl, id)
        }
    }
}

以上是对vue-qr组件的详细介绍,针对于设置中心点logo背景颜色失效的问题,猜测应该是组件版本问题,对于高自定义的在线生成二维码组件有兴趣的小伙伴们,可以尝试一下,对于需要用到动态二维码生成扫描的项目是有一些帮助的!

参考链接:
Awesome-qr.js:Awesome-qr.js
vue-qr:vue-qr项目地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2135205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么企业可以通过数据产品实现商业价值

管理者们通常希望可以通过数据洞悉更精准的商业趋势。 根据 Gartner 2023 年的调查显示&#xff0c;有69%的数据分析师或数据管理者们&#xff0c;仍在努力通过数据分析&#xff0c;希望实现可衡量的投资回报率&#xff0c;而数据产品是实现这一难题的重要解决方案之一。 什么…

USBCANFD卡在新能源BMS上位机的应用

使用简明教程&#xff1a;插入一个视频 USBCANFD-401是一款高性能的USB转双路CANFD/LIN的CANFD盒&#xff0c;支持单路CNA(FD)和LIN转USB通信。 通过USB接口快速接入CANFD或LIN通道&#xff0c;使接入CAN/CANFD/LIN网络变得轻松便捷。该设备采用金升阳电源模块和信号隔离芯片&…

GAMES101(2~3作业)

作业2 基础题目&#xff1a; 栅格化&#xff1a;在屏幕绘制一个实心三角形&#xff0c;函数 rasterize_triangle(const Triangle& t)&#xff0c;需要找出当前三角形的边界框&#xff0c;然后遍历像素&#xff0c;查找当前像素是否在三角形内static bool insideTriangle(…

ESP32开发 -- 初识

一、ESP32官网 ESP32官网 二、文档下载 用的是ESP32-S3-MINI-1&#xff0c;官网查看相关文档 相关文档 三、技术规格书 四、开发板 参看&#xff1a;ESP32-S3 系列开发板 ESP32-S3-MINI-1 相关开发板的示例代码&#xff0c;后续可以参考。 Espressif Systems esp-dev-…

9天也能养成ins账号!超详细操作指南

Instagram&#xff0c;作为全球最受欢迎的社交媒体平台之一&#xff0c;为跨境电商卖家们提供了一个展示产品、吸引潜在客户的绝佳舞台。然而&#xff0c;受限于ins的规则&#xff0c;要想在这个平台上进行产品的宣传并非易事。 这就是为什么我们需要精心培养一个ins账号&#…

Linux(4)--CentOS8虚拟机下联网

文章目录 1. 背景2. VmWare配置3. 电脑网络配置4. 配置虚拟机网络5. 重启联网 1. 背景 安装CentOS后&#xff0c;尚不能联网&#xff0c;没有网络就不好上网&#xff0c;所以先解决上网问题。 2. VmWare配置 打开VmWare&#xff0c;点击编辑-虚拟网络编辑器&#xff0c;选择…

PyCharm使用ipynb文件交互式绘图

PyCharm配置 Jupyter Notebook 这个文章很全 PyCharm配置 Jupyter Notebook plotly方法 终端安装&#xff1a; pip install plotlyimport plotly.graph_objects as go import numpy as np# 示例数据 X np.linspace(-5, 5, 100) Y np.linspace(-5, 5, 100) X, Y np.meshg…

GNSS的数据样例

武汉大学的数据地址&#xff1a; ftp://igs.gnsswhu.cn/pub/whu/phasebias obit 文件夹下存放的是卫星相关的文件 姿态&#xff1a; 、精密轨道 ERP CLK bias 文件 观测量域的偏差

RWKV作者对OpenAI 发布 o1 系列模型的看法,很深刻

知乎&#xff1a;PENG Bo 链接&#xff1a;https://www.zhihu.com/question/666991594/answer/3624168868 大家都知道长期CoT可以提升性能&#xff0c;而且很快我们会看到其它家的例子&#xff0c;这是最后的low-hanging fruit&#xff0c;因为只需合成大量训练数据&#xff0…

DDR3AXI4接口读写仿真

前文已经介绍了DDR3和AXI4总线的相关知识&#xff0c;我们知道MIG ip核除了可以生成native接口还能生成AXI4接口&#xff0c;今天就练习一下将AXI4接口的DDR3打包成FIFO。首先我们生成一个AXI4接口的MIG ip核&#xff0c;其余步骤与Native接口的ip核相同&#xff0c;如果我们勾…

力扣: 翻转字符串里的单词

文章目录 需求分析代码结尾 需求 给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;输入字符…

03_Python数据类型_字符串

Python的基础数据类型 数值类型&#xff1a;整数、浮点数、复数、布尔字符串容器类型&#xff1a;列表、元祖、字典、集合 字符串 在Python中&#xff0c;字符串&#xff08;String&#xff09;是一种非常重要的数据类型&#xff0c;用于表示文本数据。字符串是不可变的&…

算子级血缘在金融数据环境的实践应用

在企业的数据管理领域&#xff0c;算子级血缘极大优化了脚本内部字段口径的理解与追踪。面对几十、几百乃至几千行代码的复杂脚本&#xff0c;并且有着各种函数调用、数据转换等复杂的加工逻辑&#xff0c;如果通过传统的 ETL 工作模式&#xff0c;开发人员就不得不采用“盲人摸…

SpringBoot整合WebSocket实现消息推送或聊天功能示例

最近在做一个功能&#xff0c;就是需要实时给用户推送消息&#xff0c;所以就需要用到 websocket springboot 接入 websocket 非常简单&#xff0c;只需要下面几个配置即可 pom 文件 <!-- spring-boot-web启动器 --><dependency><groupId>org.springframewo…

深度学习驱动超材料设计领域发展

深度学习在超材料设计领域的应用是一个令人兴奋的研究方向。超材料&#xff08;Metamaterials&#xff09;是一类具有自然界中不存在的特殊性质的人工材料&#xff0c;它们通过精确设计微结构来获得独特的电磁、光学或声学特性。这些特性使得超材料在各个领域都有广泛的应用前景…

大模型产品经验漫谈

前文 昨天给领导汇报了最近做的一个 txt2sql 技术路线实现的智能助手的项目&#xff0c;总算是告一段落了&#xff0c;做了半年的时间&#xff0c;作为整个项目的技术负责人从头到尾主导项目&#xff0c;肯定是有不少收获和感悟的&#xff0c;趁现在还在脑袋里面热乎着&#x…

GPS/LBS/Wi-Fi定位,全安排!—合宙Air201资产定位模组LuatOS快速入门04

经历了hello world、点灯、远程控制三期基础教程&#xff0c;小伙伴们是不是收获满满&#xff0c;期待更高阶的应用呢&#xff1f; 本期&#xff0c;我们将学习合宙Air201的核心功能之一——定位功能&#xff01; Air201定位示例教程 合宙Air201资产定位模组——是一个集成超…

SAP B1 Web Client MS Teams App集成连载一:先决条件/Prerequisites

一、先决条件/Prerequisites 在设置 SAP Business One 应用之前&#xff0c;确保您已具备以下各项&#xff1a;Before you set up the SAP Business One app, make sure you have acquired the following: 1.Microsoft Teams 管理员账户/A Microsoft Teams admin account 您需…

电力电子器件:二极管,晶闸管,GTO,GTR,MOSFET,IGBT

目录 1. 二极管 2. 晶闸管&#xff08;SCR&#xff09; 3. 门极关断晶闸管&#xff08;GTO&#xff09; 4. 门极可关断晶体管&#xff08;GTR&#xff09; 5. 金属氧化物半导体场效应晶体管&#xff08;MOSFET&#xff09; 6. 绝缘栅双极型晶体管&#xff08;IGBT&#x…

HarmonyOS开发实战( Beta5.0)使用ArkUI的FrameNode扩展实现动态布局类框架详解

鸿蒙HarmonyOS开发往期必看&#xff1a; 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门到精通&#xff09; HarmonyOS NEXT应用开发性能实践总结 简介 在特定的节假日或活动节点&#xff0c;应用通常需要推送相…