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

这篇具有很好参考价值的文章主要介绍了Vue中使用qrcode实现渲染二维码中间添加自定义logo-demo。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果 

Vue中使用qrcode实现渲染二维码中间添加自定义logo-demo,Vue,JavaScript,vue.js,javascript,前端

安装

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变量。

封装 

Vue中使用qrcode实现渲染二维码中间添加自定义logo-demo,Vue,JavaScript,vue.js,javascript,前端

<template>
  <div class="qr-code" ref="container">
    <img :src="qrCodeData"/>
  </div>
</template>
<script>
import { ref, onMounted, watch,nextTick } from 'vue';
import QRCode from "qrcode";
export default {
  name: "Qrcode",
  props: {
    modelValue: {
      type: String,
      default: ''
    }
  },
  setup(props, {emit}) {
    const canvas = ref(null)
    const container = ref(null)
    const qrCodeData = ref("data:image/png;base64,")
    watch(() => props.modelValue, (val, oldVal) => {
      render()
    });
    const render = async () => {
      if (props.modelVal == '') return

      await nextTick()
      // QRCode.toCanvas(
      //   canvas.value,
      //   props.modelValue ,
      //   {
      //     width: 150,
      //     height: 150
      //   },
      //   error => {console.log(error)}
      // )
      QRCode.toDataURL(props.modelValue, {  margin: 1, errorCorrectionLevel: 'H'}, (err, url) => {
        qrCodeData.value = url
        
      })
    }
    onMounted(() => {
      render()
    })
    return {
      render,
      canvas,
      container,
      qrCodeData
    }
  },
}
</script>
<style lang="less" scoped>
.qr-code {
  width: 200px;
  height: 200px;
  background-image: url('@/assets/images/wallet/qr-code-bg.svg');
  background-size: 100% 100%;
  margin: 38px 0 30px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  img {
    width: 170px;
    height: 170px;
  }
}
</style>

 文章来源地址https://www.toymoban.com/news/detail-687054.html

到了这里,关于Vue中使用qrcode实现渲染二维码中间添加自定义logo-demo的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序使用weapp-qrcode.js生成二维码以及“扫普通链接二维码打开小程序”动态传递参数实现以及遇到问题记录

    参考文章原文链接:微信小程序使用weapp-qrcode.js完成二维码的生成_fairy_404的博客-CSDN博客 首先给需要生成二维码的页面创建一个canvas 因为我这里实现的是弹窗展示二维码,所有就把 canvas移出页面,小伙伴们根据自己需求进行调整,weapp-qrcode.js内容参考链接中就有,我这里就

    2024年02月01日
    浏览(43)
  • vue3 qrcode 生成二维码展示 亲测可用

    网上找的好多vue3 生成二维码代码都不能用,正确办法如下 安装 script template

    2024年02月09日
    浏览(27)
  • Python + qrcode 实现文字转二维码

    前几天写了个小工具,卖了12块钱。钱不钱的倒没什么,主要就是图个乐乎哈哈。 某天,一位兄弟问我,如果他给我写信寄到我们学校,我怎样才能收到。在这个信息技术高度发达的时代,应该没几个年轻人寄过信了吧?因此他不清楚寄信的流程也很正常。可是,寄信??这

    2023年04月17日
    浏览(33)
  • 使用jquery.qrcode生成二维码

    1、首先在页面中加入jquery库文件和qrcode插件。 2、在页面中需要显示二维码的地方加入以下代码: 3、生成二维码 qrcode支持canvas和table两种方式进行图片渲染,默认使用canvas方式,效率最高,当然要浏览器支持html5。直接调用如下 也可以通过以下方式调用: 这样就可以在页面

    2024年02月06日
    浏览(35)
  • 如何使用h5-scan-qrcode插件实现一个h5页面扫码识别二维码功能

    为了适应公司代码全程使用jquery构造 如需其他js或者vue 可根据此代码去改(因为好多地方会用到这个东西所以我封装成了一个js文件) https://dragonir.github.io/h5-scan-qrcode/#/ 这个是效果 可以提前看一下~ 我做的比这个效果多一个拿取本地图库的二维码扫码 scancode ---- html文件 如何

    2024年02月06日
    浏览(47)
  • 详解Python生成二维码插件QrCode的使用

    二维码(QR Code)是一种常见的矩阵型条码,被广泛用于扫码支付、产品标识、活动推广等领域。Python提供了许多第三方库用于生成和解析二维码,其中最常用的是qrcode库。本文将介绍如何使用qrcode库来生成二维码,并提供相应的代码示例和详细说明。 在开始之前,我们需要

    2024年02月16日
    浏览(39)
  • JavaScript 中生成二维码,你可以使用第三方库,其中最流行和广泛使用的是 QRCode.js。以下是使用 QRCode.js 生成二维码的基本步骤:

    要在 JavaScript 中生成二维码,你可以使用第三方库,其中最流行和广泛使用的是 QRCode.js。以下是使用 QRCode.js 生成二维码的详细的步骤如下: 步骤 1: 引入 QRCode.js 库 首先,将 QRCode.js 库引入到你的 HTML 文件中。你可以从 CDN 上获取它: 步骤 2: 创建容器 在页面中创建一个容器

    2024年01月18日
    浏览(54)
  • 【vue-qrcode + html2canvas】前端二维码生成与下载

    其实一开始搜的时候,很多还都是推荐的 vue-qrcode ,于是就先用这个,但是发现想要在二维码中间放一个自定义的image的时候,这个库有点麻烦,需要自己将 image 图片盖在二维码上面(官方教程也是如此)。好吧,一开始我也这么干了,但是盖完之后,我需要下载这个有居中

    2024年04月17日
    浏览(32)
  • H5项目实现扫描二维码功能 -- html5-qrcode

    vue3中使用 html5-qrcode 实现扫描二维码功能。 实现原理:调取手机摄像头扫一扫功能实现 注:调取手机摄像头需要再 https协议 下才可以,有的项目启动配置 https:true 可以实现启动的项目协议为 https 且可以访问,有的还是需要证书才能访问 1、下载 html5-qrcode 2、使用

    2024年02月06日
    浏览(23)
  • HTML+JS + layer.js +qrcode.min.js 实现二维码弹窗

    id 作为 定位标识 由于我框架中引入了VUE ,所以 我是直接写在了VUE的方法中触发的,并引入layer弹窗js 关于layer弹窗详细使用方法可以去H-ui官网查看 https://www.h-ui.net/lib/layer.js.shtml

    2024年01月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包