世界上最遥远的距离不是生与死,而|

放飞的回忆

园龄:7年10个月粉丝:61关注:3

Canvas实现视频截图的功能

1、首先获取video元素和创建canvas

1
2
3
const video = document.getElementById('video');
const canvas = document.createElement("canvas");
const canvasCtx = canvas.getContext("2d")

2、截图的像素大小及优化

devicePixelRatio 能够返回当前显示设备的物理像素分辨率与 CSS 像素分辨率的比率,能够更好还原真实的视频场景,具体参考官方。

1
2
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");

 

本文作者:放飞的回忆

本文链接:https://www.cnblogs.com/ziyoublog/p/16866728.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   放飞的回忆  阅读(269)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2019-11-07 VUE缓存:keep-alive
2019-11-07 vue 解决jsonp跨域
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起