qrcode.js 生成二维码中间加logo
时间: 2023-08-06 17:04:16 浏览: 397
你可以使用 qrcode.js 库生成带有 logo 的二维码。首先,你需要将 logo 转换为 base64 编码的字符串,然后以 data URL 的形式插入到二维码中心。
以下是一个例子:
```javascript
// 导入 qrcode.js 库
import QRCode from 'qrcode'
// 获取二维码容器元素
const qrcodeContainer = document.getElementById('qrcode')
// 生成二维码
QRCode.toDataURL('https://example.com')
.then(qrcodeDataUrl => {
// 创建一个图片元素
const img = document.createElement('img')
img.src = qrcodeDataUrl
// 创建一个 canvas 元素
const canvas = document.createElement('canvas')
canvas.width = img.width
canvas.height = img.height
// 在 canvas 上绘制二维码图片
const ctx = canvas.getContext('2d')
ctx.drawImage(img, 0, 0)
// 将 logo 插入到二维码中心
const logo = new Image()
logo.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='
logo.onload = () => {
const logoSize = img.width * 0.2 // logo 大小为二维码的 20%
const logoX = (img.width - logoSize) / 2
const logoY = (img.height - logoSize) / 2
ctx.drawImage(logo, logoX, logoY, logoSize, logoSize)
// 在容器中插入带 logo 的二维码
qrcodeContainer.appendChild(canvas)
}
})
```
注意,以上代码中的 logo 数据 URL 只是一个示例,请替换为你自己的 logo 数据 URL。同时,为了避免跨域问题,你需要将 logo 图片上传到你自己的服务器并获取其数据 URL,而不是直接使用外部图片链接。
阅读全文