如何用HTML2Canvas将二维码和文字组合成一张PNG图片并避免遮挡?
关联文字和二维码生成 png 图片
当在二维码中添加文字时,文字信息可能会被二维码遮挡。同时,调整文字与二维码的距离时,超过二维码范围又会导致文字无法显示。
解决方案
- 使用 html2canvas 插件:该插件可将 html 内容转换为图片。
- 拆分二维码和文字:将生成的二维码和文本内容拆分,并放置在 html 中。
- 使用 html2canvas 生成新图片:使用 html2canvas 将拆分的 html 内容重新生成一个新的图片,保存为 png 格式。
示例代码:
立即学习“前端免费学习笔记(深入)”;
<div id="qr-container"> <div id="qrcode"></div> <div id="text">文本说明</div></div>
// 生成二维码var qrcode = new QRCode("qrcode", { text: "二维码内容", width: 256, height: 256,});// 拆分 QR 码和文本var myContainer = document.getElementById("qr-container");// 转换 HTML 为图片html2canvas(myContainer).then(function(canvas) { var imageData = canvas.toDataURL("image/png"); saveAs(imageData, "qrcode-with-text.png");});
使用这个方法,你可以将文字说明和二维码一起保存为一个 png 图片,同时避免文字遮挡或距离过远的问题。