<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style>
*{
margin:0;
padding:0;
}
.center{
text-align: center;
}
</style>
</head>
<body>
<p class="center">
<img src="1.jpg" alt="" />
<img src="2.png" alt="" />
</p>
<button onclick="date()">生成</button>
<p id="imgBox" style="width:1000px;height:800px;">
</p>
</body>
<script>
var data=["1.jpg","2.png"],base64=[];
function date(){
var Mycanvas=document.createElement("canvas"),
ct=Mycanvas.getContext("2d"),
len=data.length;
Mycanvas.width=640;
Mycanvas.height=386;
ct.rect(0,0,Mycanvas.width,Mycanvas.height);
ct.fillStyle='#fff';
ct.fill();
function draw(n){
if(n<len){
var img=new Image;
img.crossOrigin = 'Anonymous'; //解决跨域
img.src=data[n];
console.log(data[n]);
img.onload=function(){
ct.drawImage(this,0,0,640,386);
draw(n+1);
}
}else{
base64.push(Mycanvas.toDataURL("image/png"));
document.getElementById("imgBox").innerHTML='<img src="'+base64[0]+'">';
}
}
draw(0)
}
</script>
</html>
结果两张图片却没有合成成功,这是为什么呢?
理论上应该是这样的
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...