实现上图这种效果,将一张img背景图与canvas二维码合在一起,成为一张img
效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <canvas id="cv" width="500px" height="800px"></canvas> </body> <script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript"> $(function() { var $my_canvas=$("#cv"); var my_canvas=$my_canvas[0]; var context=my_canvas.getContext("2d"); // context.fill //ctx.fillStyle="#0000ff"; preImage("test.jpg",function(x,y,width,height){ context.save(); // context.rotate(10*Math.PI/180); context.drawImage(this,x,y,width,height); context.restore(); },{"x":0,"y":0,"width":500,"height":800}); preImage("a.png",function(x,y,width,height){//a.jpg 就是二维码图片(这里我使用的别的图) context.save(); // context.rotate(-20*Math.PI/180); context.drawImage(this,x,y,width,height); context.restore(); },{"x":200,"y":530,"width":100,"height":100}); //x,y横坐标,纵坐标,图像宽度,width,图像高度,height //修改此处的 x y 到二维码的位置即可 }); function preImage(url,callback,wo){ var img = new Image(); //创建一个Image对象,实现图片的预下载 img.src = url; if (img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数 callback.call(img,wo.x,wo.y,wo.width,wo.height); return; // 直接返回,不用再处理onload事件 } img.onload = function () { //图片下载完毕时异步调用callback函数。 callback.call(img,wo.x,wo.y,wo.width,wo.height);//将回调函数的this替换为Image对象 }; } </script> </html>
a.pngtest.jpg
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(1)
效果
a.png
test.jpg