微信小程序使用相机扫描获取大量照片

背景:需要使用微信小程序拍摄多帧图片上传服务器,用于三维重建

微信小程序能不能利用摄像头实时获取每一帧的图像?

获取 Camera 实时帧数据 onCameraFrame的ArrayBuffer如何保存为图片? | 微信开放社区 (qq.com)

目前测试有三种方法

1:使用takePhoto方法

CameraContext.takePhoto(Object object)

缺点:频率过高的时候会导致调用摄像机失败,而且ios手机拍摄的时候画面抖动

2.onCameraFrame直接转为base64

微信小程序onCameraFrame获取的ArrayBuffer转为base64图片的方法_小程序 frame 转图片-CSDN博客

小程序AR识别,三行代码实现Camera数据毫秒级转base64图片 | 微信开放社区 (qq.com) 

onCameraFrame获取到的frame.data如何转为图片的base64 | 微信开放社区 (qq.com) 

GitHub - jpeg-js/jpeg-js:用于node.js的纯 javascript JPEG 编码器和解码器 

缺少一个Buffer库,而且解码的时候手机会特别卡,放弃尝试

3.使用Canvas作为中间临时存放

将实时帧数据添加到Canvas上,然后将Canvas保存为临时图片

参考链接:

小程序AR识别,三行代码实现Camera数据毫秒级转base64图片 | 微信开放社区 (qq.com)

遇到的问题:

canvasToTempFilePath: fail canvas is empty 的坑 | 微信开放社区 (qq.com)

我使用的解决办法是:不要给canvas type,反正我们也不看

<canvas canvas-id="myCanvas"></canvas>

缺点:

1.把数据放到画布上面渲染这一步太耗费时间,而且画布多大,你的图片就是多大,你需要找一个地方放置画布 

2.高频率采样,1s5张,手机非常卡顿,整个微信都会死机

总结

微信小程序纯傻逼

4.获取图片保存到本地,然后打包zip上传 

微信小程序 - 创建 ZIP 压缩包_微信小程序压缩包-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值