获取 Camera 实时帧数据 onCameraFrame的ArrayBuffer如何保存为图片?
发布于 7 年前 作者 mingtian 9725 次浏览 来自 问答

请问

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

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

2 回复

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

所以需要用upng来转一下

var upng = require(’…/…/utils/upng.js’);

//这里转一下

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

var base64 = wx.arrayBufferToBase64(pngData)

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

回到顶部