京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2715|回复: 0

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

[复制链接]

29

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-11-21 14:33:23 | 显示全部楼层 |阅读模式 来自 中国
前言
3 Y. w0 w7 j( B2 e
, f! C+ U7 }7 c; n1 a2 [9 `" D本次使用的是canvas.drawImage()实现截图功能, 关于api支持的dom元素、基本参数,可点击查询下面连接 CanvasRenderingContext2D.drawImage()2 d! Q  r$ r" L7 `# F* }  z* R
处理过程
/ Q. ~$ a+ U0 G9 x/ M0 ?' x' l6 p: p9 u1 @. ?$ h- U+ S  L+ `
我本次的需求是多人视频中对某一视频某一刻的截图,展示视频直接用的原生video标签. b$ S: j& d) m5 J1 k4 r
1、首先获取video元素和创建canvas
  1. const video = document.getElementById('video');const canvas = document.createElement("canvas");const canvasCtx = canvas.getContext("2d")
复制代码
2、截图的像素大小及优化
, k0 c4 Q! O' f, x5 i- x$ c3 `devicePixelRatio 能够返回当前显示设备的物理像素分辨率与 CSS 像素分辨率的比率,能够更好还原真实的视频场景,具体参考官方
  1. const ratio = window.devicePixelRatio || 1;canvasCtx.scale(ratio, ratio);
复制代码
3、处理canvas画布
  1. // canvas大小与图片大小保持一致,截图没有多余canvas.width = video.offsetWidth * ratio;canvas.height = video.offsetHeight * ratio;
复制代码
4、生成canvas并转化成自己需要的格式,我这里就直接转成base64了" u+ J) W, L7 N& }  m/ K+ y
 
  1. canvasCtx.drawImage(video, 0, 0, canvas.width, canvas.height)const imgBase64 = canvas.toDataURL("image/png");
复制代码
到此这篇关于使用canvas对video视频某一刻截图的文章就介绍到这了,更多相关canvas视频截图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
4 ]% @/ p5 ^7 E& c1 s) I6 p4 {) y+ G/ F
来源:http://www.jb51.net/html5/790425.html
/ O: x: ^0 ^5 j' \% m免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-11-10 20:09 , Processed in 0.034777 second(s), 22 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表