javascript - jquery.qrcode.js 渲染到带有徽标的 img
问题描述
我使用 jquery.qrcode.js 生成带有 logo 的 qrcode 图像。生成的时候有个logo <canvas>
,但是当我用来toDataURL
渲染的时候<img />
,logo就消失了。如何更正以将带有徽标的 qrcode 图像渲染为<img />
?这是我的代码。
$('#qrcode').qrcode({
render: 'canvas',
text: QRCODE,
width: 600,
height: 600,
background: "#ffffff",
foreground: "#000000",
src: 'https://wx.style999.com/static/user/img/favicon.ico'
})
$('#qrcode > img').attr('src', $('#qrcode > canvas')[0].toDataURL('image/png'))
解决方案
您的徽标不会出现,因为您在创建最终画布之前导出了数据 URL。将徽标添加到 QR 码是一个异步过程。src
创建最终画布后设置图像应该可以解决问题。
例如,使用setTimeout
(虽然这不是一个好习惯,我不知道这个库是否为您提供了一些回调)。
但是,由于徽标来自互联网而不是您的域,您可能会遇到Tainted canvases may not be exported
问题。
你也可以阅读这个。受污染的画布不得出口
推荐阅读
- r - 为什么使用 sf 包创建的 shapefile 在 ArcMap 中不显示相同的 CRS?
- google-apps-script - 如何防止 NOW 功能每次自动更新?有没有办法做到这一点?
- azure - DotNetNuke 实例无法启动
- python - 无法将 Beautiful Soup 安装到 Python 2,因为我已经在我的 Python 3 中安装了它,但我也无法导入或卸载它
- java - 如何将 Python 中的这种递归深度优先搜索转换为 Java?
- arrays - 如何使用 ngFor 循环根据前两个选定值选择第三个值列表
- riscv - RISC-V中访问非操作数寄存器的自定义指令?还访问内存?
- c++ - mingw 为 c++ 编译 opencv 时出现错误?
- java - 如何使用 Spring Boot 运行在数据库列中配置的查询
- git - 如何修复 Git 错误:密钥不包含部分:trustexitcode