vue实现根据链接生成带logo二维码,并下载

第一步,下载插件

npm install vue-qr --save

第二步,页面中使用

<template>
  <vue-qr
    ref='Qrcode'
    :logo-src="logoSrc" // logoSrc 二维码中间logo图片(选填)默认无
    :size="size" // 二维码尺寸
    :margin="0" // 二维码外边距
    :text="appSrc" // 生成二维码连接
  />
  <Button size='small' @click="downloadImg">下载二维码</Button>
</template>
<script>
import VueQr from 'vue-qr'
export default {
  name: 'QrCode',
  props: {
    // 被生成二维码连接(必填)
    appSrc: {
      type: String,
      default: ''
    },
    // 二维码中间logo图片(选填)
    logoSrc: {
      type: String,
      default: ''
    },
    // 二维码尺寸(选填)
    size: {
      type: Number,
      default: 150
    }
  },
  components: {
    VueQr
  },
   methods: {
    // 下载二维码
    downloadImg () {
      const iconUrl = this.$refs['Qrcode'].$el.src
      const a = document.createElement('a')
      const event = new MouseEvent('click')
      a.download = fileName // 定义下载的二维码文件名
      a.href = iconUrl
      a.dispatchEvent(event)
    }
   }
}
</script>

以下是二维码可用属性一览

text:  //编码的内容,不能为空且必须要有值
size: 尺寸, 长宽一致, 包含外边距
margin: 二维码图像的外边距, 默认 20px,一定要设置为零,否则会被莫名奇妙的压缩
colorDark: 实点的颜色
colorLight: 空白区的颜色
bgSrc: 欲嵌入的背景图地址,一般不用,会比较花哨
backgroundColor	:背景色(默认白色)
logoSrc: 欲嵌入至二维码中心的 LOGO 地址,头像图片
logoMargin: LOGO 标识周围的空白边框, 默认为0
logoBackgroundColor:Logo 背景色,需要设置 logo margin(默认白色)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue 2,你可以使用第三方库`qrcode-generator`和`vue-qrcode-component`来生成图标的二维码。首先,你需要安装这两个库: ```bash npm install qrcode-generator npm install vue-qrcode-component ``` 然后,在你的Vue组件中使用它们: ```vue <template> <div> <img :src="qrcodeUrl" alt="QR Code" /> </div> </template> <script> import QRCode from 'qrcode-generator'; import VueQrcode from 'vue-qrcode-component'; export default { components: { VueQrcode }, data() { return { qrcodeUrl: '' // 存储生成二维码图片URL }; }, mounted() { this.generateQRCode(); }, methods: { generateQRCode() { const qrcodeData = 'https://example.com'; // 二维码的内容 // 创建QRCode实例 const qr = QRCode(4, 'L'); qr.addData(qrcodeData); qr.make(); // 获取二维码的DataURL const qrcodeDataURL = qr.createDataURL(); // 创建一个Image对象 const image = new Image(); // 在Image对象加载完成后生成图标的二维码的DataURL image.onload = () => { const canvas = document.createElement('canvas'); canvas.width = image.width; canvas.height = image.height; const context = canvas.getContext('2d'); context.drawImage(image, 0, 0); // 添加图标到二维码上 const logoImage = new Image(); logoImage.src = 'path/to/logo.png'; // 图标的路径 const logoSize = 64; // 图标的大小 const logoPosition = (canvas.width - logoSize) / 2; // 图标的位置 context.drawImage(logoImage, logoPosition, logoPosition, logoSize, logoSize); // 生成图标的二维码的DataURL this.qrcodeUrl = canvas.toDataURL(); }; // 设置Image对象的src为二维码的DataURL image.src = qrcodeDataURL; } } }; </script> ``` 在上面的示例中,我们使用了`QRCode`库来生成二维码,并使用`vue-qrcode-component`来在Vue组件中展示二维码。你可以将`qrcodeData`更改为你想要生成二维码的实际数据,并将`logoImage.src`更改为你的图标的路径。 确保在Vue应用程序中正确导入和使用`qrcode-generator`和`vue-qrcode-component`库,这样你就可以在Vue 2中生成图标的二维码了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值