收藏
回答

调用画布drawImage时报错

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug drawImage 客户端 6.7.3 2.4.3

- 当前 Bug 的表现(可附上截图)

在调用drawImage()时会产生很多报错日志在小程序后台,但是却排查不出问题,毕竟参数没有错误,编译器也没报错,就是小程序后台的报错日志会有:undefined is not an object (evaluating 't.indexOf')


- 预期表现


- 复现路径


- 提供一个最简复现 Demo

var ctx = wx.createCanvasContext('myCanvas1');

// 绘图开始

ctx.setFillStyle('#e9564f');

ctx.fillRect(0, 0, 320, 524);

ctx.save();

// 画用户头像

ctx.beginPath();

ctx.arc(160, 46, 27.5, 0, 2 * Math.PI);

ctx.fill();

ctx.clip();

temAvatar = 'http://tmp/wx4692f08fa6ad3bc2.o6zAJs3vnbKuh2g7so7z2zZ83jzw.jVjUUrNRLbuh80237f2eb1b24ecf0a03be51c97c5fdc.jpeg';

ctx.drawImage(temAvatar, 132.5, 18.5, 55, 55);

ctx.restore();

ctx.save();

//画发起者昵称

ctx.setFillStyle('#fde7c1');

ctx.setFontSize(13);

ctx.setTextAlign('center');

ctx.fillText('name', 160, 92);

ctx.save();


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

5 个回答

  • Eric Huang
    Eric Huang
    2019-04-04

    确认一下 temAvatar 这个地址是否正确

    2019-04-04
    有用
    回复 1
    • 梓焕👻
      梓焕👻
      2019-05-22

      确认是正确的

      2019-05-22
      回复
  • 禾店短剧系统
    禾店短剧系统
    2021-06-11

    图像需调用onload事件,包裹住绘制图像方法drawImage即可。

    2021-06-11
    有用 1
    回复
  • 梓焕👻
    梓焕👻
    2019-06-18

    最终指向的是WA*.js,然后我们能看到的定点又是某个官方函数,例如还有一个报错指向的位置是canves的drawImage方法,但是这个drawImage方法是官方的,不是我们写的,然而报错的具体信息显示的是:Cannot read property 'indexOf' of undefined;但我们又没有indexOf相关的代码,所以真的好懵逼。这时候我们怎么定位问题呢?这个测试又测不出来,报错问题又无法找到。

    具体报错如下图:


    2019-06-18
    有用 1
    回复 2
    • Eric Huang
      Eric Huang
      2019-06-18

      在你那边可以重现吗?我用你上面的片段表现正常。另外建议排查一下 drawImage 这个接口传入的参数是否一直有效。

      2019-06-18
      回复
    • 梓焕👻
      梓焕👻
      2019-06-18回复Eric Huang

      我这边无法重现,我测试过所有的参与异常的情况了,参数异常也没有复现。尴尬

      2019-06-18
      回复
  • 慵懒
    慵懒
    2020-12-12

    请问楼主解决了吗


    2020-12-12
    有用
    回复
  • !
    2019-11-20

    我也出现这个问题,不知道楼主解决没

    2019-11-20
    有用
    回复
登录 后发表内容