使用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 相关文章推荐
HTML5时代CSS设置漂亮字体取代图片
Sep 04 HTML / CSS
浅析css3中matrix函数的使用
Jun 06 HTML / CSS
css3实现文字首尾衔接跑马灯的示例代码
Oct 16 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
Feb 08 HTML / CSS
HTML5 Canvas中绘制椭圆的4种方法
Apr 24 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
Mar 08 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
html5中嵌入视频自动播放的问题解决
May 25 HTML / CSS
AmazeUI中模态框的实现
Aug 19 HTML / CSS
CSS 还能这样玩?奇思妙想渐变的艺术
Apr 27 HTML / CSS
深入理解margin塌陷和margin合并的解决方案
Jun 26 HTML / CSS
纯html+css实现Element loading效果
Aug 02 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
PHP和.net中des加解密的实现方法
2013/02/27 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
删除table表格行的实例讲解
2017/09/21 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
python实现类的静态变量用法实例
2015/05/08 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
Python迭代和迭代器详解
2016/11/10 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
Python 列表理解及使用方法
2017/10/27 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
财务工作个人求职的自我评价
2013/12/19 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
婚前协议书范本
2014/10/27 职场文书
七一慰问简报
2015/07/20 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL