收藏
回答

webgl在iOS下使用canvas.toDataURL()获取URL不对?

我想保存canvas(type=webgl)上的内容为image并保存下来,使用canvas.toDataURL(),在模拟器和Android设备上都可以正常保存图片,在iOS设备上获取到的URL= ’data:‘,没有图片数据内容。

不知道这是系统原因还是使用时需要特别处理?

下面是我获取URL的代码:

```

gl = canvas.getContext("webgl", { preserveDrawingBuffer: true })

let imgUrl = gl.canvas.toDataURL('image/jpeg', 0.5) // 压缩比只在模拟器上生效

```

请大神指点

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

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-09-09

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2019-09-09
    有用
    回复 17
    • 朱林涛
      朱林涛
      2019-09-10
      这个代码片段不太好整,有点复杂,我想请问一下,官方角度,canvas.toDataURL()在iOS和Android系统下正常使用是没有区别的是吗?另外,我是在自定义组件中调用的,是否会受这个影响?
      2019-09-10
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2019-09-10回复朱林涛

      这个在 webgl 下还不支持

      2019-09-10
      回复
    • 朱林涛
      朱林涛
      2019-09-10回复社区技术运营专员-娇华
      在webgl下只有Android设备支持是吗?那我想在webgl下截取canvas上的内容,需要怎么做呢?目前有没有可行的API或是技术方案?麻烦指点下,多谢!!
      2019-09-10
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2019-09-10回复朱林涛

      可以用 gl.readPixels 方法获取 canvas 的数据

      2019-09-10
      回复
    • 朱林涛
      朱林涛
      2019-09-10回复社区技术运营专员-娇华
      这个尝试过,获取到的数据比较大,没法保存为图片
      2019-09-10
      回复
    查看更多(12)
  • 成林
    成林
    2020-08-18

    如下代码是在小程序中运行的吗?

    gl = canvas.getContext("webgl", { preserveDrawingBuffer: true })

    let imgUrl = gl.canvas.toDataURL('image/jpeg'0.5// 压缩比只在模拟器上生效



    2020-08-18
    有用
    回复
登录 后发表内容
问题标签