小程序 wx.canvasToTempFilePath   工具正常显示图片真机不显示 填坑

小程序 wx.canvasToTempFilePath   工具正常显示图片真机不显示 填坑
项目上有个需求是要生成海报 发到朋友圈的

 

createImg(){
    var _this = this;
    var size = _this.setCanvasSize();
    var context = wx.createCanvasContext('myCanvas', this);
    var path = _this.data.image; //测试的图片
    var imageQrCode = _this.data.qrcode; //二维码
    console.log('createNewImg', path, imageQrCode);
    context.drawImage(path, 0, 0, size.w, size.h);
    
    context.drawImage(imageQrCode, 28, size.h - 90, 85, 85);
    this.settext(context);
    
    //绘制图片
    context.draw(false, _this.toimg);
},
toimg() {
    var _this = this;
    console.log('before save to canvas');
    wx.canvasToTempFilePath({
      canvasId: 'myCanvas',
      quality: 1,
      fileType: 'png',
      success: function (res) {

        wx.hideLoading({
          success: (res) => {},
        })
        console.log('image created', res);
        var tempFilePath = res.tempFilePath;
    }
    });
}

 

看看上面代码,看起来没什么不对的地方,
但是  真机上 真的不显示 图片 
因为 开发工具 上的 wx.canvasToTempFilePath 返回的是 一个 http 地址,真机的是 wxfile 开头的 临时文件

 

var path = _this.data.image; //测试的图片

var imageQrCode = _this.data.qrcode; //二维码

canvas 画图的时候 工具上是可以从云端后者是网上的一个地址作为图片源 画图的。但是 真机上就不行,查了好久 度娘 以后发现  小程序 里面的 canvas 是阉割的,好多功能都用不了的。还有一个就是
用来画图的图片源必须是本地的。所以如果用的是网上的资源的话 必须先把他下载到本地才能用
 

wx.downloadFile({
          url: img_url, //仅为示例,并非真实的资源
          success(res) {
            console.log('down res', res);
            self.setData({
              image: res.tempFilePath,
            });

          }
        });

才可以在真机上 看到用 canvas 画出来的 图片

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uygurjan2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值