懒人之家--可能是JS网页特效代码收集最全的懒站!

js+canvas多张图片合成一张图片代码

作者/代码整理:  (转载请附加本文地址,带有“懒人原生”字样的谢绝转载) 发布日期:2017-11-26
js+canvas多张图片合成一张图片代码,将多张图片元素合成为一张图片的效果。


js代码

<script>

function hecheng(){
	draw(function(){
		document.getElementById('imgBox').innerHTML='<p style="padding:10px 0">合成图片成功!可以鼠标另存图片查看我是否是一张图片~~!</p><img src="'+base64[0]+'">';
	})	
}

var data=['img1.png','img2.png','img3.png','img4.png'],base64=[];
function draw(fn){
	var c=document.createElement('canvas'),
		ctx=c.getContext('2d'),
		len=data.length;
	c.width=290;
	c.height=290;
	ctx.rect(0,0,c.width,c.height);
	ctx.fillStyle='#fff';
	ctx.fill();
	function drawing(n){
		if(n<len){
			var img=new Image;
			//img.crossOrigin = 'Anonymous'; //解决跨域
			img.src=data[n];
			img.onload=function(){
				ctx.drawImage(img,0,0,290,290);
				drawing(n+1);//递归
			}
		}else{
			//保存生成作品图片
			base64.push(c.toDataURL("image/jpeg",0.8));
			//alert(JSON.stringify(base64));
			fn();
		}
	}
	drawing(0);
}
</script>