收藏
回答

xr-frame中getARRawData获取的相机数据该如何使用?

getARRawData返回长度达百万的arraybuffer该如何转换使用?


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

1 个回答

  • frye张
    frye张
    01-31

    兄弟,你是怎么调用这个接口的,我一直没有找到这个接口应该怎么调,xrsystem没接口可以获取啊,const xrSystem = wx.getXrFrameSystem();我只看到了这个接口;

    你的问题是arraybuffer怎么用,它可以保存成每一帧的图像文件,

    // 获取canvas和context

    wx.createSelectorQuery()

    .select('#ImageCropCanvas') // 在 WXML 中填入的 id

    .fields({ node: true, size: true })

    .exec((res) => {

    // Canvas 对象

    const canvas = res[0].node;

    // Canvas 绘制上下文

    const ctx = canvas.getContext('2d');

    // 初始化画布大小

    // const dpr = wx.getWindowInfo().pixelRatio;

    const dpr = 1.;

    canvas.width = newWidth; //* dpr;

    canvas.height = newHeight; //* dpr;

    console.log('canvas size:', canvas.width, canvas.height, dpr);

    ctx.scale(dpr, dpr);

    // 创建ImageData对象并设置像素数据

    // const imageData = new ImageData(new Uint8ClampedArray(buffer), width, height);

    ctx.putImageData(new Uint8ClampedArray(buffer), 0, 0, 0, 0, width, height);

    // 将canvas内容保存为文件

    wx.canvasToTempFilePath({

    canvas: canvas,

    x: 0,

    y: 0,

    width: newWidth,

    height: newHeight,

    destWidth: newWidth * dpr,

    destHeight: newHeight * dpr,

    success(res) {

    resolve(res.tempFilePath); // 使用resolve返回图像文件路径

    },

    fail(error) {

    reject(error); // 出错时调用reject

    }

    });

    });




    01-31
    有用
    回复 1
    • frye张
      frye张
      01-31
      知道了,console.log('arSystem:', this.scene.ar.getARRawData());
      腾讯真不适合做开放技术,开发全靠猜,F**K
      01-31
      回复
登录 后发表内容