解析: 原理是一样的
画多张图需要一张一张画
也就是等图片onload成功后处理
这里代码写的比较随意
实际用的时候可以小粉转一下 也非常简单。我懒~~
么么、、
newImage(text) {
// 生成图片
var imageBox = document.getElementById("newimage")
var canvas = document.getElementById("canvas")
var cxt = canvas.getContext("2d")
var img = new Image()
img.src = require(`assets/img/activity/newyear/${1}.jpg`)
// 图片加载完成,才可处理
img.onload = () => {
// 画图(这里画布与图片等宽高)
cxt.drawImage(img, 0, 0)
// 设置字体大小
cxt.font = "28px Microsoft YaHei"
// 更改字号后,必须重置对齐方式,否则居中麻烦。设置文本的垂直对齐方式
cxt.textBaseline = 'middle'
cxt.textAlign = 'center'
// 距离左边的位置
var left = canvas.width / 2
// 距离上边的位置 (图片高-文字距离图片底部的距离)
var top = canvas.height - 328
// 文字颜色
cxt.fillStyle = "#000"
// 文字在画布的位置
cxt.fillText(text, left, top)
// 画第二张图
draw()
} function draw() {
var img2 = new Image()
img2.src = 'require(`assets/img/activity/qm/button.png`)'
img2.onload = () => {
cxt.drawImage(img2, 180, 80)
imageBox.src = canvas.toDataURL("image/jpg")
}
} },