收藏
回答

canvas调用canvasToTempFilePath的图片为一张黑色图片

问题模块 框架类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Android 6.0,5.1 华为荣耀8 6.6.5


微信版本6.6.5

安卓版本 6.0 ,5.1

canvas签名后调用wx.canvasToTempFilePath 返回一张黑色图片 IOS正常


最后一次编辑于  2018-03-23  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

16 个回答

  • 杨俊宁
    杨俊宁
    2018-03-26

    1003719811 我的微信QQ,加一个我们多多沟通把

    2018-03-26
    赞同 1
    回复
  • 黄思程
    黄思程
    2018-03-23

    需要在draw的回调里调用该接口

    2018-03-23
    赞同
    回复
  • 杨俊宁
    杨俊宁
    2018-03-26

    我在draw里边调用的该接口,也是遇到了安卓手机得到一张黑色图片

    2018-03-26
    赞同
    回复
  • 、You Define me
    、You Define me
    2018-03-26

    这个问题我已经解决了,安卓你需要手动给canvas设置背景颜色不然就是黑色的

    2018-03-26
    赞同
    回复
  • 杨俊宁
    杨俊宁
    2018-03-26

    设置背景颜色是什么操作?我是刚研究 canvas,谢谢楼主指教

    2018-03-26
    赞同
    回复
  • 杨俊宁
    杨俊宁
    2018-03-26

    手动给canvas设置背景色怎么做呢楼主

    2018-03-26
    赞同
    回复
  • 、You Define me
    、You Define me
    2018-03-26
    this.ctx = wx.createCanvasContext("myCanvas");
    let query = wx.createSelectorQuery();
    query.select('#canvasWarp').boundingClientRect().exec((res) => {
    this.canvas = res[0];
    this.ctx.setFillStyle('#ffffff');
    this.ctx.fillRect(0, 0, res[0].width, res[0].height);
    this.ctx.draw();
    });

    就是手动把canvas背景填充为白色

    2018-03-26
    赞同
    回复
  • 杨俊宁
    杨俊宁
    2018-03-26
    // 绘制图像到画布
      drawImage(){
        this.setData({
          isShowCanvas: true
        });
        ctx.drawImage(this.data.canvas_tr, 0, 0,systemInfo.windowWidth,systemInfo.windowHeight);
        ctx.setFillStyle("#db493a");
        ctx.draw(false,()=>{
          //在 draw 回调里调用该方法才能保证图片导出成功
          wx.canvasToTempFilePath({
            canvasId: 'tr5a',
            success: (res)=>{
              this.setData({
                isShowCanvas: false,
                test: res.tempFilePath
              });
              wx.navigateTo({
                url: '/pages/common/saveCard?filePath='+res.tempFilePath
              })
            }
          },this)
        });
      },

    这是我的代码,你的我看不懂啊

    2018-03-26
    赞同
    回复
  • 、You Define me
    、You Define me
    2018-03-26
    this.ctx.setFillStyle('#ffffff');

    this.ctx.fillRect(0, 0, canvas的宽, canvas的高);

    就这两句话而且上面的代码只是为了获取我canvas的宽,高,保证我填充的时候是满的


    2018-03-26
    赞同
    回复
  • 杨俊宁
    杨俊宁
    2018-03-26

    背景颜色可以,但是我绘制的是图片,背景颜色生效了,图片却没有生效

    2018-03-26
    赞同
    回复