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制作3D效果文字具体实现样式
May 02 HTML / CSS
一款纯css3实现的鼠标悬停动画按钮
Dec 29 HTML / CSS
用CSS3实现背景渐变的方法
Jul 14 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
Jan 30 HTML / CSS
利用html5的websocket实现websocket聊天室
Dec 12 HTML / CSS
HTML5图片预览实例分享
Jun 04 HTML / CSS
详解HTML5中的元素与元素
Aug 17 HTML / CSS
HTML5移动端手机网站开发流程
Apr 25 HTML / CSS
h5调用摄像头的实现方法
Jun 01 HTML / CSS
HTML5 canvas基本绘图之绘制五角星
Jun 27 HTML / CSS
详解CSS中的特指度和层叠问题
Jul 15 HTML / CSS
CSS子盒子水平和垂直居中的五种方法
Jul 23 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
PHP多文件上传实例
2015/07/09 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
Extjs表单常见验证小结
2014/03/07 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
Python yield 使用浅析
2015/05/28 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
python实现最速下降法
2020/03/24 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
体育课课后反思
2014/04/24 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
销售2014年度工作总结
2014/12/08 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS
mysql全面解析json/数组
2022/07/07 MySQL