Vue中使用qrcode实现渲染生成二维码中间添加自定义logo-demo

2023-10-28

效果 

安装

npm i qrcode

使用 

import QRCode from 'qrcode';

 具体生成过程

<template>
    <div class="banner-login">
      <img :src="qrDataUrl" />
    </div>
</template>

<script setup>
import { ref, reactive } from 'vue';
import QRCode from 'qrcode';
import { getNewCode } from '@/api/sefatyCenter';
import { useRouter } from 'vue-router';
const router = useRouter();
const goPath = (r) => {
  router.push({
    path: r
  });
};



let qrDataUrl = ref();
let secret = ref('');
const getCode = async () => {
  const {
    data: { data }
  } = await getNewCode();
  console.log(data);
  secret.value = data.secret;
  //直接生成二维码不做处理
  // qrDataUrl.value = await QRCode.toDataURL(data.uri);

  // 创建一个新的canvas元素来容纳二维码
  const qrCodeCanvas = document.createElement('canvas');
  qrCodeCanvas.width = 200; // 根据需要调整二维码尺寸
  qrCodeCanvas.height = 200;

  // 生成二维码到新的canvas元素
  await QRCode.toCanvas(qrCodeCanvas, data.uri);

  // 在二维码中间添加logo
  const ctx = qrCodeCanvas.getContext('2d');
  const logo = new Image();
  logo.src = require('@/assets/images/logo.png');
  logo.onload = function () {
    const logoSize = qrCodeCanvas.width * 0.26; // 根据需要调整logo尺寸
    const logoX = (qrCodeCanvas.width - logoSize) / 2;
    const logoY = (qrCodeCanvas.height - logoSize) / 2;

    // 绘制二维码
    ctx.drawImage(logo, logoX, logoY, logoSize, logoSize);

    // 将生成的二维码插入到页面中
    qrDataUrl.value = qrCodeCanvas.toDataURL();
  };
};
getCode();


</script>

我们首先创建一个新的canvas元素,用于容纳生成的二维码。然后,使用QRCode.toCanvas方法将二维码生成到新的canvas元素中。

接下来,在logo.onload事件处理程序中,我们创建一个Image对象来加载logo图像,并在二维码中间绘制logo。最后,将生成的二维码转换为数据URL,并将其赋值给qrDataUrl变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue中使用qrcode实现渲染生成二维码中间添加自定义logo-demo 的相关文章

  • 在移动浏览器或 PhoneGap 应用程序之间进行检测

    是否可以使用 JavaScript 检测用户是否通过浏览器或应用程序进行访问 我正在通过网页和 PhoneGap 应用程序开发适用于多个移动操作系统的混合应用程序 目标是 独立于部署目标使用相同的代码 仅当用户代理是应用程序时添加 Phon
  • 为什么我无法使用 HTML5 音频标签多次播放声音?

    这就是声音的 存储 方式
  • LeafletJs只显示一个国家

    我使用 Leafletjs 和 D3 来显示地图 我只想在地图上显示英国 Leaflet和D3是否可以只显示英国 这当然是可能的 现在的解决方案取决于您是想使用 D3 绘制英国 还是想从 Tile Server 获取它 在后一种情况下 有一
  • JavaScript 中的 ParseFloat 函数

    当我添加两个文本框值时1 001 and 0 001然后我做了一个parseFloat I get 1 0019999999 我要它1 002 你能帮助我吗 JavaScriptNumber http www w3schools com j
  • 如何在D3节点中放置图像?

    到目前为止 我已经创建了这些 D3 节点 用于创建可折叠的层次树 到目前为止 这些节点的颜色为 AA1C1C 深红色 以表明如果您单击它们 它们将扩展到更多节点 我想要做的是在节点中使用图像中的位置 这对于所有用户来说都是一个加号 以知道它
  • 仅当 url 以 www 为前缀时才会发生 CORS 错误

    我目前遇到一个关于 CORS 跨源资源共享 的问题 奇怪的是 只有当我使用 www url 前缀时 才会出现这种情况 例如 当我使用以下网址访问我的网站时 http example com index http example com in
  • javascript中.match和.test有什么区别[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在浏览 JavaScript 时 我刚刚遇到了 match test 和 exec有什么不同 这是最快的 首先 exec and test
  • 如何在 vuejs 中防止/停止点击传播

    我有一个递归列表 树 每个元素都有一个 click sayHello el id 现在的问题是 因为它是一个嵌套列表 例如 list element 0 01 list el 1 01 list el 2 01 list el 1 02 l
  • 为什么 Number.isNaN() 对字符串返回 false?

    据我的理解NaN代表Not A Number Strings不是绝对的Numbers因此我希望下面的代码返回true对于字符串 然而 事实并非如此 console log Number isNaN Stack Overflow 有人可以澄清
  • 将 JSON 字符串传递给 Django 模板

    我一直在用头撞墙 试图找出为什么我无法将从 Django 模型生成的 JSON 字符串传递到模板的 javascript 静态文件中 事实证明 问题不在模型级别 使用serializers serialize 在脚本本身中放入相同的字符串将
  • 在 Jscript 中实例化 System.Threading.Thread 对象

    我正在尝试使用 Jscript 创建一个新的 System Threading Thread 对象 但我无法让构造函数工作 如果我只是执行以下操作 var thread new Thread threadFunc function thre
  • PHP:在执行 php 脚本时显示“正在加载”页面

    这就是我现在所拥有的 我有一个网页 当访问该网页时 它会通过开放 API 连接到 Surveygizmo com 检索大量数据 然后将这些数据返回给我进行处理 此过程大约需要 10 12 秒 在执行时 页面只是处于 正在加载 状态 并且我会
  • AngularJS 与(Angular JS + jQuery)

    我有一个关于仅使用 AngularJS 和纯 JavaScript 以及使用 AngularJS 和 jQuery 时的性能问题 ex app directive fitHeight function window return restr
  • 使用Doctype让scrollTop返回0,为什么?

    当我将此 Doctype 放入我的文档中时document body scrollTop返回零 这是为什么 当您使用该 Doctype 时 您会将每个当前浏览器放入所谓的几乎标准模式 http hsivonen iki fi doctype
  • 如何列出特定服务器的所有成员?

    我的代码是 const list client guilds find id 335507048017952771 for user of list users console log user 1 username 这实际上没有任何作用
  • 在 Mobile Safari 中点击

    敲击
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激
  • 如何使用 jquery 生成并附加随机字符串

    一般性 我想使用 jQuery 或 javascript 将随机字符串附加到元素的属性 规格 我需要引用 CDN 上的 CSS 文件 不幸的是 每次更新该 CSS 文件时 CDN 都会更改该文件的 URL 所以我不能简单地引用静态 URL
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR
  • 使用 Javascript 删除字符串的最后一个字符

    我有一个DIV与一些字符 如何在每次单击时删除文本中的最后一个字符DIV itself 删除第一个字符 div on click function this text function index text return text repl

随机推荐

  • Java简易图书管理系统开发全过程 (1)

    引言 今天班里的图书角管理员抱怨 这借书流程太繁琐了 我便善 装 良 杯 地说 那我开发个图书管理软件吧 于是便有了这个 Java简易图书管理系统开发全过程 1 引言 开发环境搭建 底层逻辑构思 开发环境搭建 我打算使用Java Swing
  • 空间与运动——简单太阳系+牧师与魔鬼

    作业内容 一 简答并用程序验证 1 游戏对象运动的本质是什么 2 请用三种方法以上方法 实现物体的抛物线运动 3 简单太阳系 二 编程实践 1 脚本设计 2 效果图 一 简答并用程序验证 1 游戏对象运动的本质是什么 游戏对象的运动是物体随
  • unity技能冷却

    本文转载自http blog csdn net liang 704959721 article details 44961757 在游戏中一般都会用到冷却技能 CD 实现的方式一般都是遮罩 你可以自己写遮放的方法 或者用shader实现 使
  • 交叉编译arm版本rsync工具

    交叉编译arm版本rsync工具 自动安装脚本 下载源码 解压源码 配置编译 安装 复制到开发板 使用rsync 命令参数 配置文件 参考博客 自动安装脚本 bin sh BUILD HOST arm linux gnueabihf ARM
  • 操作系统知识整理——Linux下进程的内存布局以及brk()、sbrk()函数探究

    文章目录 前言 一 内存堆栈模型 二 系统栈和用户栈 三 函数调用时的内存栈分配 四 brk sbrk 用法详解 前言 本篇文章是自己在学习xv6操作系统内核时 发现自己对进程在内存中的布局知识点上还是有一些混淆不清 所以在这里做一些补充整
  • 华为OD机试 - 解密犯罪时间(Java)

    题目描述 警察在侦破一个案件时 得到了线人给出的可能犯罪时间 形如 HH MM 表示的时刻 根据警察和线人的约定 为了隐蔽 该时间是修改过的 解密规则为 利用当前出现过的数字 构造下一个距离当前时间最近的时刻 则该时间为可能的犯罪时间 每个
  • 正确使用cocoaPods 在OC中集成Charts第三方库

    之前的看到的都是错误的 正确的步骤如下 1 安装cocoaPods 2 新建一个OC工程 3 pod init 到 vi Podfile Uncomment the next line to define a global platform
  • MySQL主从、集群模式简单介绍

    目录 1 主从模式 Replication 2 集群模式 3 主从模式部署注意事项 主从模式 集群模式 都是在一个项目中使用多个mysql节点进行存储和读取数据 当单机模式部署 不满足安全性 高可用 高并发等需求的时候 就需要考虑主从模式或
  • 超详细的Git使用教程(图文)

    一 Git概述 1 1 Git历史 Git 诞生于一个极富纷争大举创新的年代 Linux 内核开源项目有着为数众多的参与者 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上 1991 2002年间 到 2002 年
  • leecode-寻找重复数字

    题目 题目 分析 哇哦 原来vector可以这样初始化 学到了 不初始化会直接报错嘞 代码 class Solution public int findDuplicate vector
  • 企业微信使用高德地图获取定位报错:INVALID_USER_SCODE(无效用户代码)

    解决方案 1 在html头部放你创建的高德安全密钥 2 完整代码如下
  • JAVA高级知识点整理

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 String字符串类 String 可变字符串 StringBuilder 可变字符串与String之间的转换 RunTime类 概述 特点 使用 Data类
  • apache beam入门之程序入口——PipelineOption

    前置章节apache beam入门宝典之初次使用 从第一章里我们看到最开始需要生成1个PipelineOption 然后才能生成1个Pipeline 而这个所谓的option用处是将可以将程序输入的args数组转成1个PipelineOpt
  • 【基于python实现UI自动化】3.0 selenium - webdriver常见8大元素定位

    python UI自动化之selenium元素定位 1 0 selenium工具介绍 2 0 selenium环境搭建 3 0 selenium元素定位 selenium常见8大元素定位 通过ID定位 通过class name定位 通过na
  • [开发过程]<c#上位机>关于.net6

    水下机器人 c 上位机 根据官方文档进行学习开发 1 了解 net6 简而言之 就是稳定强悍 跨设备 简单上手 资源丰富 强 Announcing NET 6 The Fastest NET Yet NET Blog NET 6 is no
  • java类的参考文献,太完整了!

    一面 先是问了问项目 然后就开始问一些问题 1 每个请求耗时100ms 机器的配置是4核8G 问要达到10000TPS需要多少台机器 没答上来 问了问是IO密集型还是CPU密集型 然后面试官说我想得太复杂了 2 怎么实现网页的自动跳转 答3
  • 将json文件解析存储到MySQL数据库

    PostMapping test public Object test RequestParam file MultipartFile file 将JSON解析为Java对象也称为从JSON反序列化Java对象 ObjectMapper o
  • Spring Cloud 2.x之整合工作流Activiti

    工作流在项目中非常常用 这里先来看两张图 第一张 第二张 对以上两张图进行说明 假设这两张图就是华谊兄弟的请假流程图 图的组成部分 人物 范冰冰 冯小刚 王中军 事件 动作 请假 批准 不批准 工作流 Workflow 就是 业务过程的部分
  • LLVM 环境搭建

    LLVM相关 环境搭建 PC VMware Workstation 下载 https www vmware com go getworkstation win KEY ZC3WK AFXEK 488JP A7MQX XL8YF 可自行网上查
  • Vue中使用qrcode实现渲染生成二维码中间添加自定义logo-demo

    效果 安装 npm i qrcode 使用 import QRCode from qrcode 具体生成过程