使用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实现滚动的齿轮动画效果
Jun 05 HTML / CSS
纯CSS3发光分享按钮的实现教程
Sep 06 HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
Dec 20 HTML / CSS
使用phonegap进行提示操作的具体方法
Mar 30 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
Nov 09 HTML / CSS
canvas绘制视频封面的方法
Feb 05 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
Oct 22 HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
Sep 30 HTML / CSS
使用Html5 Stream开发实时监控系统
Jun 02 HTML / CSS
详解如何使用rem或viewport进行移动端适配
Aug 14 HTML / CSS
html+css 实现简易导航栏功能
Apr 07 HTML / CSS
html,css,javascript是怎样变成页面的
May 07 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 self,$this,const,static,->的使用
2009/10/22 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
微信小程序实现图片上传
2019/05/23 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python制作简单的网页爬虫
2015/11/22 Python
Python批量更改文件名的实现方法
2017/10/29 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
python实现Windows电脑定时关机
2018/06/20 Python
Django Rest framework权限的详细用法
2019/07/25 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
运动会领导邀请函
2014/01/10 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
学历公证委托书
2014/04/09 职场文书
小学生安全责任书
2014/07/25 职场文书
小学班主任研修日志
2015/11/13 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
python中的random模块和相关函数详解
2022/04/22 Python