使用canvas对video视频某一刻截图功能


Posted in HTML / CSS onSeptember 25, 2021

前言

本次使用的是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");

到此这篇关于使用canvas对video视频某一刻截图的文章就介绍到这了,更多相关canvas视频截图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3画一个阴阳八卦图
Mar 09 HTML / CSS
详解Css3新特性应用之过渡与动画
Jan 10 HTML / CSS
css3制作动态进度条以及附加jQuery百分比数字显示
Dec 13 HTML / CSS
CSS3的resize属性使用初探
Sep 27 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
May 02 HTML / CSS
HTML5使用DOM进行自定义控制示例代码
Jun 08 HTML / CSS
HTML5注册表单的自动聚焦与占位文本示例代码
Jul 19 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
Mar 25 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
Jul 18 HTML / CSS
浅析HTML5页面元素及属性
Jan 20 HTML / CSS
使用canvas实现雪花飘动效果的示例代码
Mar 30 HTML / CSS
css背景和边框标签实例详解
May 21 HTML / CSS
使用CSS实现一个搜索引擎的原理解析
sass 常用备忘案例详解
Sep 15 #HTML / CSS
关于HTML编码导致的乱码问题
Sep 04 #HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 #HTML / CSS
深入理解CSS 中 transform matrix矩阵变换问题
Aug 30 #HTML / CSS
CSS+HTML 实现顶部导航栏功能
Aug 30 #HTML / CSS
HTML5 语义化标签(移动端必备)
Aug 23 #HTML / CSS
You might like
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
PHP函数in_array()使用详解
2014/08/20 PHP
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
js实现二级导航功能
2017/03/03 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
Python处理Excel文件实例代码
2017/06/20 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
教师实习的自我鉴定
2013/10/26 职场文书
合同专员岗位职责
2013/12/18 职场文书
优秀信贷员先进事迹
2014/01/31 职场文书
文科生自我鉴定
2014/02/15 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
教师继续教育反思周记
2015/06/25 职场文书
小学新课改心得体会
2016/01/22 职场文书
2019教师的学习计划
2019/06/25 职场文书
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技