canvas绘制视频封面的方法


Posted in HTML / CSS onFebruary 05, 2018

一、需求:上传视频,同时截取视频某一帧作为视频的封面。

canvas绘制视频封面的方法

二、实现思路:利用canvas绘制图像的功能,绘制图像某一帧,这里绘制了第一帧,很简单就实现了。

三、代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>capture screen</title>
    <style type="text/css">
        video,#container{width: 300px;height: 200px;}
        #container>img{width: 100%;}
    </style>
</head>
<body>
    <video id="video" controls="controls">
        <source src="video/video_test.mp4">
    </video>
    <div id="container"></div>
    <script type="text/javascript">
        (function() {
            var video, container;
            var scale = 0.8;
            var initialize = function() {
                container = document.getElementById("container");
                video = document.getElementById("video");
                video.addEventListener('loadeddata', captureImage);
            };
            var captureImage = function() {
                var canvas = document.createElement("canvas");
                canvas.width = video.videoWidth * scale;
                canvas.height = video.videoHeight * scale;
            canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
                var img = document.createElement("img");
                img.src = canvas.toDataURL("image/png");//转换成base64图片,地址拿出来就可以直接使用
                container.appendChild(img);
            };
            initialize();
        })();
    </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
css3 条纹化和透明化表格Firefox下测试成功
Apr 15 HTML / CSS
CSS3实现时间轴效果
Jul 11 HTML / CSS
详解Sticky Footer 绝对底部的两种套路
Nov 03 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
Nov 12 HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 HTML / CSS
HTML5 Convas APIs方法详解
Apr 24 HTML / CSS
简单介绍HTML5中audio标签的使用
Sep 24 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
Mar 14 HTML / CSS
【HTML5】Canvas绘制简单图片教程
May 13 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
Jul 22 HTML / CSS
html5 冒号分隔符对齐的实现
Jul 31 HTML / CSS
CSS3新特性详解(五):多列columns column-count和flex布局
Apr 30 HTML / CSS
HTML5新特性之type=file文件上传功能
Feb 02 #HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
Jan 31 #HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
Jan 31 #HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
Jan 30 #HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
Jan 29 #HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
Jan 29 #HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
Jan 29 #HTML / CSS
You might like
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中列表的一些基本操作知识汇总
2015/05/20 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Python正则表达式学习小例子
2020/03/03 Python
如何利用Python 进行边缘检测
2020/10/14 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
.net面试题
2016/09/17 面试题
大学生应聘推荐信范文
2013/11/19 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
毕业论文致谢词
2015/05/14 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang