说明
简单海报,一张背景图,一个名字,一张二维码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>canvas</title>
</head>
<style>
</style>
<body>
<img id="scream" src="./yuan.jpg" width="621" height="1341"/>
<img id="qrcode" src="./qrcode.png" width="233" height="251"/>
<canvas id="canvasDemo" width="1242" height="2682" style="border:1px solid #d3d3d3;"></canvas>
</body>
<script>
window.addEventListener('load',()=>{
var canvas = document.getElementById('canvasDemo');
var ctx = canvas.getContext('2d')
var pic = new Image()
pic.onload = function() {
ctx.drawImage(pic, 0, 0, 1242, 2682);
ctx.font = "30px Arial";
ctx.fillStyle = '#fff';
ctx.fillText("Hello World",110,190);
var qrcode = new Image();
qrcode.onload = function() {
ctx.drawImage(qrcode, 505, 2150, 233, 251);
const base = canvas.toDataURL('image/png', 0.1);
console.log(base, 'base');
return;
var aImg = document.createElement('a')
aImg.href = base;
aImg.download = 'demo.png'
document.body.appendChild(aImg)
aImg.click()
document.body.removeChild(aImg)
}
qrcode.src = './qrcode.png'
}
pic.src = './yuan.jpg';
})
</script>
</html>
备注:
通过new Image创建对象,onload函数写在上面,src赋值时,会触发onload事件。如果src在上面,onload事件可能没有绑定成功。
参考文献