收藏
回答

wx.canvasGetImageData获取data值全是0,怎么解决

起因,我想做一个ocr工具,但是各大官方的ocr api都要求图片必须用base64转换后提交,但是微信小程序没有办法再本地进行base64转换,百度找到一篇帖子,说,用以前方法:

1. 绘制图片至canvas

2. 获取canvas上图像数据

3. 使用开源库[UPNG](https://github.com/photopea/UPNG.js)对原始图像数据进行png编码

4. png编码后数据进行base64编码


但是,我再第一步时获取canvas的data值时全是0,不知道该怎么办,

请问 wx.canvasGetImageData获取data值全是0,怎么解决,


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

3 个回答

  • ocean
    ocean
    2018-06-07

    一般是canvas还没渲染,你可以draw方法提供的回调中再调用wx.canvasGetImageData

    2018-06-07
    有用 1
    回复 2
    • Larry
      Larry
      2018-10-12

      调试工具可以,真机不行

      2018-10-12
      回复
    • 子凯
      子凯
      2020-04-30回复Larry
      解决了吗
      2020-04-30
      回复
  • Erin
    Erin
    2022-06-26

    这个很好解决的,你在wx.canvasGetImageData方法外面写一个$nextTick,就可以解决这个问题了,一般就是因为canvas还没有渲染完成,所以获取的才是0

    2022-06-26
    有用
    回复
  • 何平
    何平
    2020-05-20

    1)draw的回调里wx.canvasGetImageData

    2)wx.canvasGetImageData必须传this

    3)wx.canvasGetImageData 的width,height必须是整数


    2020-05-20
    有用
    回复 1
    • 空★壳
      空★壳
      2021-07-13
      请教一下,两个页面开了两个canvas,都是有this的,然后都是调用一个包含wx.canvasGetImageData的封装函数,一个能成功获取到图片数据,另一个获取到的全为0,这是什么原因呢?(两个canvas用的canvasId是相同的,而且视图层都能成功显示出图片)
      2021-07-13
      回复
登录 后发表内容