TypeError: Failed to execute ‘drawImage‘ on ‘CanvasRenderingContext2D‘: The provided value
思路:网上有好多是利用image的onload解决的,这个方法是没有问题的,但好多时候,要drawImage的并不是一张网络图片,而是多张,所以采用【对网络图片地址的数组进行new Image循环,然后利用promise.all方法进行成功回调】解决方法:通过js画图,canvas.DrawImage()绘制网络图片无效。场景:用canvas画图时,文字能画,图片就不行。
·
场景:用canvas画图时,文字能画,图片就不行
解决方法:通过js画图,canvas.DrawImage()绘制网络图片无效
思路:网上有好多是利用image的onload解决的,这个方法是没有问题的,但好多时候,要drawImage的并不是一张网络图片,而是多张,所以采用【对网络图片地址的数组进行new Image循环,然后利用promise.all方法进行成功回调】
代码:
function loadAllImages(imgUrls) {
var _load = function (imgUrl) {
//创建img标签
var img = new Image()
img.src = imgUrl
//跨域选项
img.setAttribute('crossOrigin', 'Anonymous')
return new Promise((resolve, reject) => {
//文件加载完毕
img.onload = function () {
resolve(img)
}
})
}
var _loadAll = function (imgUrls) {
var loadedImageUrls = []
for (var i = 0, len = imgUrls.length; i < len; i++) {
loadedImageUrls.push(_load(imgUrls[i]))
}
return loadedImageUrls
}
return Promise.all(_loadAll(imgUrls))
}
// 使用
loadAllImages(imgArr).then(res => {
console.log(res[0],res[1],...)
})
更多推荐


所有评论(0)