收藏
回答

canvasToTempFilePath第二参数无论怎么整都是fail canvas is emp?

下面代码,无论that放哪里,怎么整都提示:fcanvasToTempFilePath: fail canvas is empty,真是无语,麻烦求解,谢谢。


onReady: function ()

  {

    var that = this;

    var context = wx.createCanvasContext('mycanvas',that);

    wx.chooseImage

    ({

      success: function (res)

      {

        context.drawImage(res.tempFilePaths[0], 0, 0, 150, 100);

        context.fillStyle = "#FF0000";

        context.fillRect(0, 0, 50, 50);

        context.draw(true, setTimeout(function()

        {

          wx.canvasToTempFilePath

          ({

            destWidth: 150,

            destHeight: 100,

            canvasId: 'mycanvas',

            success: function (res)

            {

              console.log('1212' + res.tempFilePath);

            },

            fail: function (res) {console.log(res);}

          },that);

        },300));

      }

    });

  }

回答关注问题邀请回答
收藏

6 个回答

  • MISO
    MISO
    05-20

    试了好多次,解决这个问题了

    05-20
    有用
    回复
  • 螺丝钉
    螺丝钉
    03-26

    wx.canvasToTempFilePath({

    x: 0,

    y: 0,

    width: 260,

    height: 260,

    destWidth: 260,

    destHeight: 260,

    canvasId: 'myCanvas',

    canvas:canvas, // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    success:(res)=>{

    console.log('二维码临时路径为:', res.tempFilePath)

    },

    fail(res) {

    console.error(res)

    }

    })


    03-26
    有用
    回复
  • 小黎
    小黎
    01-05

    跟that无关,这个写了么canvas-id='mycanvas'


    01-05
    有用
    回复 2
    • LOVINGMOBI
      LOVINGMOBI
      01-05
      尊敬的“小黎”: var context = wx.createCanvasContext("mycanvas",that);我是动态创建的,不是在wxml中定义的。就是createCanvasContext,然后context.canvasId="mycanvas"这样不行吗?一定要在wxml定义<canvas canvas-id="mycanvas"></canvas>才行吗?我需要是动态加载一个图片然后裁剪,不需要显示,所以想到动态createCanvasContext,而不是在wxml定义<canvas canvas-id="mycanvas"></canvas>,     
      请问如何实现呢?多谢了。
      01-05
      回复
    • LOVINGMOBI
      LOVINGMOBI
      01-05
      不好意思,我错了,以为createCanvasContext创建一个上下文就搞定,原来要实体的canvas。问是否可以不用wxml中定义canvas就可以裁剪图片。谢谢了。
      01-05
      回复
  • var 友原
    var 友原
    01-05
    <canvas canvas-id='mycanvas'></canvas>
    

    我猜你是忘记写这个了

    01-05
    有用
    回复 2
    • LOVINGMOBI
      LOVINGMOBI
      01-05
      尊敬的“var 友原”, var context = wx.createCanvasContext("mycanvas",that);我是动态创建的,不是在wxml中定义的。就是createCanvasContext,然后context.canvasId="mycanvas"这样不行吗?一定要在wxml定义才行吗?我需要是动态加载一个图片然后裁剪,不需要显示,所以想到动态createCanvasContext,而不是在wxml定义,    
      请问如何实现呢?多谢了。
      01-05
      回复
    • LOVINGMOBI
      LOVINGMOBI
      01-05
      不好意思,我错了,以为createCanvasContext创建一个上下文就搞定,原来要实体的canvas。问是否可以不用wxml中定义canvas就可以裁剪图片。谢谢了。
      01-05
      回复
  • LOVINGMOBI
    LOVINGMOBI
    01-04

    回复:青寒

    我就是看晕了,一个个按他们说的改都不行啊,才这里问题啊。麻烦了。我的代码。

    01-04
    有用
    回复 2
    • LOVINGMOBI
      LOVINGMOBI
      01-04
      麻烦大家了,看看我代理哪里问题,我看遍了他们的代码,一个个改都不行啊。不知道你来问题。
      01-04
      回复
    • LOVINGMOBI
      LOVINGMOBI
      01-05回复LOVINGMOBI
      求助大家,还是搞不定啊,看遍网上所有文档,都试了,都不行。
      01-05
      回复
  • 青寒
    青寒
    01-04

    xieyao。但右侧的相关问题更可能帮到你。

    01-04
    有用
    回复 7
    • LOVINGMOBI
      LOVINGMOBI
      01-04
      我的人说要多层时间控件,还是不行。
      01-04
      回复
    • LOVINGMOBI
      LOVINGMOBI
      01-04
      求:青寒,实在看遍了右边文档和baid一个一个试试都不行啊。麻烦了。
      01-04
      回复
    • LOVINGMOBI
      LOVINGMOBI
      01-05
      能给点建议吗?快疯掉了。
      01-05
      回复
    • 青寒
      青寒
      01-05回复LOVINGMOBI
      帮你邀请其他网友试试吧,或者你直接提供一个可重现的代码片段。 代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
      01-05
      回复
    • LOVINGMOBI
      LOVINGMOBI
      01-05
      尊敬的“青寒”: var context = wx.createCanvasContext("mycanvas",that);我是动态创建的,不是在wxml中定义的。就是createCanvasContext,然后context.canvasId="mycanvas"这样不行吗?一定要在wxml定义<canvas canvas-id="mycanvas"></canvas>才行吗?我需要是动态加载一个图片然后裁剪,不需要显示,所以想到动态createCanvasContext,而不是在wxml定义<canvas canvas-id="mycanvas"></canvas>,      
      请问如何实现呢?多谢了。
      01-05
      回复
    查看更多(2)
登录 后发表内容
问题标签