收藏
回答

base64转临时文件wxfile:// 后,在开发工具中可以正常渲染到canvas上,真机不行?

  drawBase64OnCanvas(base64) {
    let that = this;
    const fs = wx.getFileSystemManager(); // 获取文件系统管理器
    const base64Data = base64.replace(/^data:image\/\w+;base64,/, ""); // 去掉头部
    const filePath = `${wx.env.USER_DATA_PATH}/temp_image.png`; // 生成临时路径
    const buffer = wx.base64ToArrayBuffer(base64Data); // 转换为 ArrayBuffer

    // 将 ArrayBuffer 写入临时文件
    fs.writeFile({
      filePath,
      data: buffer,
      encoding: "binary",
      success: () => {
        console.log("临时文件写入成功:", filePath);      
        that.setData({
          studentanswer: filePath,
          imagePath: filePath
        }, function() {
          wx.showLoading({
            title: '加载中...', // 显示加载提示
            mask: true,         // 防止触摸穿透
          });
          that.drawBackgroundImage(); // 数据更新完成后,调用绘制方法在canvas上绘制
        });
      },
      fail: (err) => {
        console.error("文件写入失败:", err);
      }
    });
  },


将base64格式的图片传入此方法,经过转换后,调用drawBackgroundImage方法将图片渲染到canvas上,在开发工具可以正常渲染,但是在真机测试的时候没有任何报错,同时也没有渲染出来,为什么会出现这种情况?应该怎么更改?

最后一次编辑于  03-12
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容