AR尝试(2)---给当前屏幕截图

在AR开发过程中,尝试使用canvas的drawImage方法裁剪视频屏幕截图遇到困难,发现参数含义因Image和Video类型而异。最终采取两步走策略,先用一个canvas截取完整视频,再用另一个canvas裁剪image,通过Promise处理图片加载延迟问题,成功实现截图功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在AR尝试(1)中实现了以摄像头为底,但是采用的方法是通过marginLeft来"裁"去左边,通过设置html左右不能滑动来"裁"去右边,但是video的实际宽度还是比window.innerWidth大的。
现在要实现对当前屏幕进行截图,第一想法就是通过canvas的drawImage方法来对屏幕进行裁剪,但是尝试了很多次,试过3、5、9个参数的,呈现效果均是让人匪夷所思。最后在一篇博文中看到,drawImage对于裁剪Image类型和Video类型,参数代表的含义是不一样的。QwQ
找到了病症之后又开始无尽的试试试…真没想到这个截图能卡住我1天半的时间,啊我好菜55555
最后实在受不了了,换了种方法,既然裁剪Video匪夷所思,既然裁剪Image可控。
那。。。
干脆就直接裁剪image吧。
先用一个canvas来把整个video给截下来,然后用另一个canvas来裁刚刚canvas转过来的image。
于是就

  initCanvas() {

         // this.canvasElement = document.createElement('canvas');
         this.canvasElement = document.getElementById('canvas');
         this.canvasElement.setAttribute('width', window.innerWidth.toString() + 'px');
         this.canvasElement.setAttribute('height', window.innerHeight.toString() + 'px');
         this.canvasContext = this.canvasElement.getContext('2d');

         this.canvasElement2 = document.getElementById('canvas2');
         this.canvasElement2.setAttribute('width', window.innerWidth + 'px'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值