- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
ctx.draw() 进不去
有时候可以用,有时候不可以用。基础代码大致如下
wx.chooseImage({ count: 1, //上传数量设置为 1 sizeType: [ 'compressed' ], //上传图片质量 sourceType: [ 'album' , 'camera' ], //图片来源 success: function (res) { var tempFilePaths = res.tempFilePaths //返回的图片 url list that.getCanvasImg(0, 0, tempFilePaths); //执行压缩 Func }
getCanvasImg: function (index,failNum, tempFilePaths){ var that = this ; wx.getImageInfo({ src: tempFilePaths[0], //图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径, success: res => { console.log(res) if (index < tempFilePaths.length){ const ctx = wx.createCanvasContext( 'attendCanvasId' ); setTimeout(() => { ctx.drawImage(tempFilePaths[index], 0, 0, 300, 150);
wx.canvasToTempFilePath({ canvasId: 'attendCanvasId' , success: function success(res) { that.uploadCanvasImg(res.tempFilePath); }, fail: function (e) { console.log(e) } }); }); }, 1000); } }, fail: () => {}, complete: () => {} }); }, |
请诸位大神看到以后回复一下,为何 ctx.draw() 会进不去。
我看到大家有在2017年 2018 年提出过这个问题,据说是修复了,然而我这几天的经历告诉我这个貌似还是有问题
此外,我这段代码主要是想要实现压缩图片的功能,大家如果有好的方法,请安利我一波,谢谢
给回调函数写成立即执行格式应该就可以了 (()=>{})()
我也遇到这个问题,也是偶尔会出现,然后改成立即执行格式就ok了。。。这是何解
在iphone6也会出现这个问题 有时候可以得到 有时候得不到 如果改成 (()=>{})() 会
canvasToTempFilePath: fail canvas is empty