环境:企业微信 & IOS, API: CanvasContext.drawImage & Canvas.createImage
canvas2d 在企业微信中,IOS无法绘制图片,drawImage 需要 image 对象,而 createImage 后不走 onload,执行了 onerror,我换成 base64 也不行。
域名配置正常! 使用 canvas 非 2d 也能 drawImage 成功显示。
安卓正常。
wx.createSelectorQuery().select(`#mycanvas`).node(res=>{
const canvas = res.node;
canvas.width = 320
canvas.height = 680
let cvsctx = canvas.getContext('2d');
wx.getImageInfo({
src: this.data.img,
success: (res)=>{
// let base64 = wx.getFileSystemManager().readFileSync(res.path, 'base64')
// console.log('----base64:', base64);
let bgImage = canvas.createImage();
bgImage.onload = ()=>{ // 注意:是 onload 不是 onLoad 。
console.log('onload', bgImage);
cvsctx.drawImage(bgImage, 0, 0, canvas.width, canvas.height)
}
bgImage.onerror = ()=>{
console.log('----error------');
}
bgImage.src = res.path
// bgImage.src = 'data:image/jpeg;base64,' + base64;
}
})
}).exec();
划线之类的 API 都可以,但偏偏无法绘制背景图。
也想过直接不绘制背景图,而使用 image 定位到底部显示,但对图片绘制的内容还有马赛克功能,也就是需要对图片数据处理。所以行不通。
// 如果是使用旧版 canvas, 那么是可以的。但我想要使用的是性能更好的 canvas2d
ctx = wx.createCanvasContext('mycanvas')
ctx.drawImage(tmpfile, 0, 0, canvas.width, canvas.height)
ctx.draw()
CanvasContext.drawImage(string imageResource
第一个参数是 imageResource 。。能查到的资料太有限了,我目前没有找到有其他办法传入除了 image 对象之外的东西。
请教有经验的大佬,有没有办法?
看见别人提的同样问题,等待官方给出回答
https://developers.weixin.qq.com/community/develop/doc/000c2ebf848ae0a969ba85c0d56800