收藏
回答

如何offscreen获取ImageData?

基础库版本:2.16.0

目的:offscreen绘制(主要是对图片做像素级处理)


查官方文档可以这么写

offscreenCanvas = wx.createOffscreenCanvas();

offscreenCtx = offScreenCanvas.getContext('2d');

结果吧,offscreenCtx报错undefined,不管是开发者工具还是真机预览都没有区别对待

然后看了下offscreenCanvas

不对劲啊,搜了一下,好家伙,原来还没支持

幸运的是官方发布基础库2.16.1会支持offscreenCanvas 2dcontext(https://developers.weixin.qq.com/community/develop/doc/000284f77301d00b4ffbd753b51c01?highLine=offscreencanvas

不幸运的是因为有重大bug,回退了, 退了,了,e(https://developers.weixin.qq.com/community/develop/doc/00084219fac4604943fba168c5d000?highLine=%25E5%259F%25BA%25E7%25A1%2580%25E5%25BA%25932.16.1

白更新了开发者工具


现在就很尴尬,到底是要等官方不知何时的更新,还是另寻他法

虽说要另寻他法也只找到这个实际上还是onscreen的方法,实在是不想用https://developers.weixin.qq.com/community/develop/doc/00068ebb07c3301cd0f97524251000?highLine=offscreen


有没有大佬知道有什么方法可以offscreen得到ImageData?或者有什么替代方法?

最后一次编辑于  2021-04-08
回答关注问题邀请回答
收藏

6 个回答

  • 立
    2021-04-09

    我也遇到了这个问题。。。官方文档真误导人,浪费时间

    2021-04-09
    有用 2
    回复
  • Cynthia®
    Cynthia®
    2021-04-23

    不用canvas可以用wx.request去读取png图片,得到arraybuffer,根据png规范去解码得到像素值

    解码过程可以参考https://vivaxyblog.github.io/2019/12/07/decode-a-png-image-with-javascript-cn.html

    处理的时候转成Uint8ClampedArray格式,最终得到的就是imageData.data

    (也可以找js png decoder,github很多MIT许可的)

    2021-04-23
    有用 1
    回复
  • ice breaker
    ice breaker
    2021-04-22

    2021.04.22

    ```js

    const offscreenCanvas = wx.createOffscreenCanvas(500, 400, this)

    offscreenCanvas.getContext('2d') 还是 undefined

    ```

    官方文档 https://developers.weixin.qq.com/miniprogram/dev/api/canvas/OffscreenCanvas.getContext.html

    2d 最低版本2.14.4 不就是在误导人吗?

    2021-04-22
    有用 1
    回复 1
  • Cjiang
    Cjiang
    2021-04-08

    你好,2.16.1 会支持这个接口,已经在灰度了

    用法如下:

    const canvas = wx.createOffscreenCanvas({ type: '2d' });
    const ctx = canvas.getContext('2d');
    
    2021-04-08
    有用 1
    回复 3
    • Cynthia®
      Cynthia®
      2021-04-09
      为什么我在mac版开发者工具可以选择2.16.1基础库,但是windows版本里面找不到2.16.1?
      2021-04-09
      回复
    • Cynthia®
      Cynthia®
      2021-04-09回复Cynthia®
      都是Stable 1.05.2103190版本
      2021-04-09
      回复
    • Cjiang
      Cjiang
      2021-04-12回复Cynthia®
      麻烦重新发帖,详细描述下工具的问题。
      2021-04-12
      回复
  • AION炘
    AION炘
    2021-08-19

    搞了一上午,getImageData得到的全是0的数组,一度以为哪里写错了


    2021-08-19
    有用
    回复
  • 殷小鹿
    殷小鹿
    2021-05-21

    wx.canvasToTempFilePath

    对于用wx.createOffscreenCanvas创建的canvas不起作用?

    2021-05-21
    有用
    回复 3
    • Cynthia®
      Cynthia®
      2021-05-21
      对,getImageData拿到的数据不对的
      2021-05-21
      回复
    • 晴天
      晴天
      2022-05-21
      ImageData 拿到了怎么变成临时路径呢?
      2022-05-21
      回复
    • 觀·自在
      觀·自在
      2023-11-02回复晴天
      请问是如何拿到的
      2023-11-02
      回复
登录 后发表内容
问题标签