各位读者大人们好,不知道各位读者大人们近来如何。
由于前段时间事情比较多,文章的更新就给耽误了,项目需要上线经常加班,再加上自己的一些学习计划,一晃就是一个多月,没有更新文章。
我写文章的目的很简单,不是为了涨粉,更多的是为了个人成长,因为你在写文章的同时其实就是在自我学习的过程,这个过程要比你单纯的看知识点要吸收的更有效率。
当然了,在这个过程中如果能收获认可自己的读者,那是一件很开心的事情。如果没有,我也没有损失什么。一直按照我的节凑进行就好。
所以从这个角度来说,转载可能对我的意义就不大了。
最近在自学 Python 后面除了给大家分享前端的相关知识以外,还会给大家分享更多有意思东西。大家以后可以多关注关注。
今天给大家分享一个实战技巧,最近在项目中使用到的,需求是在播放视频的时候可以进行截图。
我们都知道,网页中大多都是用 <video>
标签进行视频的播放。那如何才能实现视频的截图呢?
这里我们用到了 canvas 的相关功能。我们都知道,canvas 是伴随着 HTML5 出现的,它具有强大的绘图能力。很多可视化库都是利用到了 canvas。
因为 canvas 具有对图像的操作能力,今天我们就用它来实现视频的截图操作,之前对 canvas 有过一段时间的学习,如果想学习 canvas 的同学,这里推荐慕课网上的入门课程。
这里主要用到两个方法:
drawImage
drawImage 方法是在画布上绘制图像、画布或视频。
语法:
ctx.drawImage(image, dx, dy);
ctx.drawImage(image, dx, dy, dWidth, dHeight);
ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
三种用法,本文不做过多描述,有兴趣的可以查看相关文档。其中的参数 image:允许任何的图像源,所以我们就可以利用这个特性,对 video 进行操作。更多可查看相关文档
toDataURL
toDataURL 方法可以返回 Canvas 图像对应的 data URI,也就是平常我们所说的base64地址。
格式如下:
data:[<mime type>][;base64],<data>
实现
利用上述方法我们很容易就能实现视频的截图,主要分为三步:
使用 drawImage 方法在画布上绘制图像。
使用 toDataURL 方法获取图像的地址。
创建一个img标签,赋值给 src。
<video id="video" src="./flower.webm" width="300" controls></video>
<button onclick="captureVideo()">截图</button>
<script>
let video = document.getElementById("video");
let canvas = document.createElement("canvas");
let img = document.createElement("img");
let ctx = canvas.getContext("2d");
function captureVideo() {
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
img.src = canvas.toDataURL();
document.body.append(img);
}
到这里就大功告成了,一起来看效果吧。
最后,如果觉得文章不错,对你有所启发,点赞是一种态度也是一种认可。
关注:六小登登,更多干货文章,这里有我的很多故事,欢迎一起交流。
共同学习,写下你的评论
评论加载中...
作者其他优质文章