canva怎么拼接图片_js canvas实现5张图片合成一张图片

本文介绍了如何使用JavaScript的Canvas API将5张图片合成一张。通过点击按钮,隐藏原始布局,展示由canvas生成的图片。涉及到的关键步骤包括设置canvas尺寸,创建图片背景,绘制各个图片元素,以及将canvas内容转换为图片。
摘要由CSDN通过智能技术生成

本文具体要实现的效果类似下面这张图片,主题流程大概是,页面上有类似这样布局的结构,点击中间那个紫色的按钮就会生成一张这样的图片,并且能够让用户下载图片的

1、首先我们布局页面的时候用的都是图片来布局成这个样子[CSS自己脑补],class为pho-bg这一段是页面开始显示的结构,几张图片定位,按钮在中间的样子。class为photo的就是用来到时候放置生成的图片。canvas就是画布。至于下面的两张图片其实就是按钮的图片和背景图,到时候一并加入画布里面【不过在页面的时候不显示】

2、重要的是js部分,这里面有几个部分

在点击按钮时隐藏掉本来的页面,显示画布生成的图片

canvas.width,canvas.height是设置你生成的图片的大小。举个例子:如果我在canvas的html标签里面设置的width=750,height=1180,但是在js里面设置了canvas.width=500,canvas.height=500,那么生成的图片的大小就会是500*500.

使用createPattern来制作图片的背景图

使用drawImage()来制作组成图片的小元素也就是红、黄、蓝、绿、紫那几张图片

最后用toDataURL()将画布的内容转为图片并且渲染到页面上

$('.btn').click(function() {

$('.pho-bg').hide();

// $('#myCanvas').show();

var man1 = document.getElementById("man-1"),

man2 = document.getElementById("man-2"),

man3 = document.getElementById("man-3"),

man4 = document.getElementById("man-4"),

sen1 = document.getElementById("sen1"),

btn1 = document.getElementById("btn1"),

canvasBg = document.getElementById("bg1");

var canvas = document.getElementById("myCanvas");

ctx = canvas.getContext("2d");

canvas.width = 750;

canvas.height = 1180;

// 制作背景图

var patBg = ctx.createPattern(canvasBg, "repeat");

ctx.rect(0, 0, 750, 1180);

ctx.fillStyle = patBg;

ctx.fill();

// 将man1,man2,man3,man4,sen1,btn加入画布

ctx.drawImage(man1, 0, 0, 341, 474);

ctx.drawImage(man2, 410, 0, 341, 474);

ctx.drawImage(man3, 0, 474, 341, 474);

ctx.drawImage(man4, 410, 474, 341, 474);

ctx.drawImage(sen1, 40, 950, 669, 109);

ctx.drawImage(btn1, 150, 350, 449, 288);

var newImg = new Image();

newImg.src = canvas.toDataURL("image/png");

$('.photo').append(newImg);

});

最后的结果生成的图片就是这样子的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值