收藏
回答

获取 Camera 实时帧数据 onCameraFrame的ArrayBuffer如何保存为图片?

请问

const listener = context.onCameraFrame((frame) => {
  console.log(frame.data instanceof ArrayBuffer, frame.width, frame.height)})

拿到的 ArrayBuffer 怎么能保存为一图片呢?有什么思路,谢谢

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

2 个回答

  • 911
    911
    02-14

    由于返回的ArrayBuffer不能直接转base64

    所以需要用upng来转一下

    var upng = require('../../utils/upng.js');

    //这里转一下

    let pngData = upng.encode([frame.data], frame.width, frame.height)

    var base64 = wx.arrayBufferToBase64(pngData)

    02-14
    赞同
    回复 1
    • Borago
      Borago
      02-17
      你好,这个js哪里获取啊?upng.js
      02-17
      回复
  • 衫儿
    衫儿
    01-10

    把ArrayBuffer数据压缩转码成JPG格式,用到https://github.com/eugeneware/jpeg-js这个。期间你可以通过worker线程进行转码

    01-10
    赞同
    回复
登录 后发表内容
问题标签