收藏
回答

canvas 2d 保存临时文件对高dpr设备不友好?

经过测试 canvas 2d 在dpr为3的真机上.canvas 大小设置为:540px*540px,调用 canvasToTempFilePath 就会抛出异常:

canvasToTempFilePath:fail:convert native buffer parameter fail.native buffer exceed size limit.

540px*540px 实际在屏幕上显示只有很小一块。而现在Android平台很多设备dpr都是3。

为什么不能提供浏览器原生的canvas.toBlob,此时blob已经经过压缩,会比getImageData节省很多内存。

如果我们就可以把blob写入存储。


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

5 个回答

  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    2019-11-28

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-11-28
    有用
    回复 8
    • #define true false
      #define true false
      2019-11-28
      魅族16t  flyme8.0.0.A .
      代码片段:
      https://developers.weixin.qq.com/s/DkD55dmN7gd6
      预期结果:
      控制台输出 can save 540*540 with dpr:3
      实际输出:
      canvasToTempFilePath:fail:convert native buffer parameter fail.native buffer exceed size limit.
      2019-11-28
      回复
    • #define true false
      #define true false
      2019-11-28
      需要Android真机才能复现
      2019-11-28
      回复
    • maze
      maze
      03-04回复#define true false
      请问解决了吗
      03-04
      回复
    • ꫞潭꫞
      ꫞潭꫞
      03-11
      遇到相同的问题了,请问最后是怎么解决的呢?
      03-11
      回复
    • 圆
      03-26
      遇到相同问题,报错占用内存过大,请问怎么解决?
      03-26
      回复
    查看更多(3)
  • ᥬᥬ[大笑]᭄᭄
    ᥬᥬ[大笑]᭄᭄
    06-17

    卧槽,这个问题还没解决啊,绘图都不行啊,750px的都绘制不上

    06-17
    有用
    回复 3
    • 圆
      06-17
      宽度是375高度不超过600,能用。最后绘图的时候*dpr,一般出图尺寸是1125px * 1800px,你可以试试
      06-17
      回复
    • ᥬᥬ[大笑]᭄᭄
      ᥬᥬ[大笑]᭄᭄
      06-17回复
      就是产品要求绘制要清晰,才加大绘制比例的,如果绘制的是600以下的,后面canvasToTempFilePath多大,都是一样的清晰度
      06-17
      回复
    • 圆
      06-17回复ᥬᥬ[大笑]᭄᭄
      是这样的,不过375尺寸出图都2M多了。wx解决这个问题至少得几个版本,你跟产品沟通吧,哈哈
      06-17
      回复
  • worm
    worm
    04-08

    目前似乎只能通过降低dpr的值来处理

    04-08
    有用
    回复
  • Oasis
    Oasis
    03-10

    遇到了相同的问题

    03-10
    有用
    回复
  • maze
    maze
    03-04

    请问解决了吗

    03-04
    有用
    回复
登录 后发表内容
问题标签