真机时canvasToTempFilePath提示canvas是空的
发布于 5 年前 作者 czhang 8000 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

开发工具和安卓端及ios9测试均正常,ios11测试导出图片路径失败,fail原因:canvasToTempFilePath: fail canvas is empty;试过在draw回调中使用canvasToTempFilePath,亦不能正常导出路径

-部分代码如下:

   var context = wx.createCanvasContext(‘canvas’);

   var path = “/images/img-share4.jpg”;

   context.drawImage(path, 0, 0, 520, 416);

   context.setFontSize(24);

   context.setFillStyle(’#444444’);

   context.textAlign = ‘center’;

   context.fillText(’『知识分享标题』’, 260, 94);

   context.stroke();

//绘制图片

   context.draw();

   //生成图片路径

   setTimeout(function () {

     wx.canvasToTempFilePath({

       canvasId: ‘canvas’,

       success: function (res) {

         var tempFilePath = res.tempFilePath;

         that.setData({

           imagePath: tempFilePath,

         });

         console.log(tempFilePath)

       },

       fail: function (res) {

         console.log(res);

       }

     });

   }, 200);

8 回复

楼主你的问题解决了吗

而且在安卓端在预览模式才能正确导出,远程调试模式也不能成功导出路径,提示如下

远程调试环境如下

没有解决呢,清缓存后预览模式都可以了,就是不能远程调试

canvas没有设置display:none

问题补充:    关于代码片段中context.measureText(text[i]).width 报错问题可以忽略,去掉这段代码依旧是不能正常调试的;首次远程真机调试可以正常渲染路径,第二次即失败

相关代码片段wechatide://minicode/tthOxcmZ66Yu

我在开发时也遇到过该问题,主要是不能把Canvas设置成display:none

回到顶部