onReady() {
const query = wx.createSelectorQuery()
query.select('#mycanvas')
.fields({
id: true,
node: true,
size: true
}).exec(this.init.bind(this));
},
async init(res) {
console.log(res, "res")
const canvas = res[0].node
const ctx = canvas.getContext('2d')
const dpr = wx.getSystemInfoSync().pixelRatio
//新接口需显示设置画布宽高;
canvas.width = res[0].width * dpr
canvas.height = res[0].height * dpr
ctx.scale(dpr, dpr);
// 创建离屏 2D canvas 实例
const canvasOff = wx.createOffscreenCanvas({
type: '2d',
width: 300,
height: 100
})
// 获取 context。注意这里必须要与创建时的 type 一致
const context = canvasOff.getContext('2d')
// 创建一个图片
const image = canvas.createImage()
// 等待图片加载
await new Promise(resolve => {
image.onload = resolve
image.src = 'http://wx2.sinaimg.cn/mw600/79a79fd0ly1gsmb2aq366j20k00xk0vy.jpg' // 要加载的图片 url
})
// 把图片画到离屏 canvas 上
context.drawImage(image, 0, 0, 300, 150)
// 把离屏画到在屏canvas上
ctx.drawImage(canvasOff, 0, 0, 100, 100);
},
Unhandled promise rejection TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(CSSImageValue or HTMLImageElement or SVGImageElement or HTMLVideoElement or HTMLCanvasElement or ImageBitmap or OffscreenCanvas)'
at CanvasRenderingContext2D.e.drawImage
报的这个
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。