qrcode加背景图
代码如下(图片放到服务器上,否则会有跨域问题):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <! DOCTYPE html> < html lang="en"> < head > < meta charset="UTF-8"> < title >我的推广</ title > </ head > < body > < input id="code-url" type="hidden" value="http://www.baidu.com"/>< br /> < div id="mid-qrcode"></ div > < div id="divOne"></ div > < script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></ script > < script src="https://cdn.bootcss.com/jquery.qrcode/1.0/jquery.qrcode.min.js"></ script > < script type="text/javascript"> $(function(){ var qrcode= $('#divOne').qrcode({ text: $("#code-url").val(), width: 150, height: 150, }).hide(); var canvas=qrcode.find('canvas').get(0); var data_codeImg = canvas.toDataURL('image/jpg');//图片base64位字符串 data = [ 'bg.png', //背景海报图 data_codeImg ], base64 = []; function draw(fn) { var c = document.createElement('canvas'), // 获取canvas对象( 通过选择器选择canvas元素 ) ctx = c.getContext('2d'), // 通过canvas获取他的上下文绘制环境( context ) len = data.length; c.width = 1125; // 画布宽 canvas的默认宽度与高度:宽度:300,高度:150 注:canvas的宽度与高度,只能通过行间属性或者js动态修改,不要通过样式去修改,否则获取到的宽度与高度不准 c.height = 536; // 画布高 ctx.rect(0, 0, c.width, c.height); // 创建矩形 参数:绘制起点x坐标,绘制起点y坐标,矩形宽(像素),矩形高(像素) ctx.fillStyle = '#fff'; ctx.fill(); function drawing(n) { if (n < len ) { var img = new Image; img.src = data[n]; img.onload = function () { if (n === 1) { // 画图 参数:图片对象,相对画布的起点x坐标, // 相对画布的起点y坐标,绘制的图片宽度(二维码,px),绘制的图片高度(二维码,px) ctx.drawImage(img, 60, 160, 250, 250); } else if(n === 0){ ctx.drawImage(img, 0, 0, c.width, c.height); } drawing(n + 1);//递归 } } else { //保存生成作品图片 base64.push(c.toDataURL("image/jpeg", 0.8)); fn(); } } drawing(0); } // 调用 function hecheng() { draw(function () { document.getElementById("mid-qrcode").innerHTML = '<img src="'+base64[0]+'">'; }); } hecheng() }); </ script > </ body > </ html > |
分类:
前端相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)