Canvas中用什么方法实现视频截图的功能,具体过程是怎样的
Admin 2022-06-28 群英技术资讯 577 次浏览
本次使用的是canvas.drawImage()实现截图功能, 关于api支持的dom元素、基本参数,可点击查询下面连接 CanvasRenderingContext2D.drawImage()
我本次的需求是多人视频中对某一视频某一刻的截图,展示视频直接用的原生video标签
1、首先获取video元素和创建canvas
const video = document.getElementById('video'); const canvas = document.createElement("canvas"); const canvasCtx = canvas.getContext("2d")
2、截图的像素大小及优化
devicePixelRatio 能够返回当前显示设备的物理像素分辨率与 CSS 像素分辨率的比率,能够更好还原真实的视频场景,具体参考官方
const ratio = window.devicePixelRatio || 1; canvasCtx.scale(ratio, ratio);
3、处理canvas画布
// canvas大小与图片大小保持一致,截图没有多余 canvas.width = video.offsetWidth * ratio; canvas.height = video.offsetHeight * ratio;
4、生成canvas并转化成自己需要的格式,我这里就直接转成base64了
canvasCtx.drawImage(video, 0, 0, canvas.width, canvas.height) const imgBase64 = canvas.toDataURL("image/png");
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了HTMl中标签中li横向排列的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了html webpack plugin插件的使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了CSS实现三栏布局中间一栏自适应且随文字大小变化宽度的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
CSS的position属性值有几种?position属性值有static、relative、fixed、absolute和sticky这五种,这篇我们主要了解position属性值的作用和用法,文中介绍得很详细,感兴趣的朋友就继续往下看吧。
这篇文章主要介绍了CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008