【前端】如何用canvas把两个img拼成一个img?

【前端】如何用canvas把两个img拼成一个img?

实现上图这种效果,将一张img背景图与canvas二维码合在一起,成为一张img

回答

效果

【前端】如何用canvas把两个img拼成一个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="https://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.png
【前端】如何用canvas把两个img拼成一个img?
test.jpg
【前端】如何用canvas把两个img拼成一个img?

以上是 【前端】如何用canvas把两个img拼成一个img? 的全部内容, 来源链接: utcz.com/a/81184.html

回到顶部