如何用canvas把两个img拼成一个img?

发布于 2022-09-05 05:39:48 字数 656 浏览 19 评论 0

110v39fbcd9c2c0725cd97c55160d575ab6c?download=WechatIMG2.jpeg&Signature=eyJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6Ii9zdG9yYWdlLzExMHYzOWZiY2Q5YzJjMDcyNWNkOTdjNTUxNjBkNTc1YWI2YyIsImV4cCI6MTUwMDU5NTIwMH0.AOZqnJAqi3jmRHE6tZpGlfE3q63Nzcrkw4CkKKADQ2w

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南薇 2022-09-12 05:39:48

效果

clipboard.png

<!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.png
a.png
test.jpg
test.jpg

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文