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 相关文章推荐
一款利用html5和css3实现的3D立方体旋转效果教程
Apr 26 HTML / CSS
用CSS禁用输入法(CSS3 UI规范)实例解析
Dec 04 HTML / CSS
css3通过scale()、rotate()实现放大、旋转
Mar 19 HTML / CSS
基于Html5实现的react拖拽排序组件示例
Aug 13 HTML / CSS
Canvas 文字碰撞检测并抽稀的方法
May 27 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
Jan 08 HTML / CSS
用HTML5制作烟火效果的教程
May 12 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
Feb 19 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
Sep 17 HTML / CSS
canvas压缩图片以及卡片制作的方法示例
Dec 04 HTML / CSS
html5 canvas绘制网络字体的常用方法
Aug 26 HTML / CSS
table不让td文字溢出操作方法
Dec 24 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 array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
JavaScript的Cookies
2008/01/16 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
Vue精简版风格概述
2018/01/30 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
Python绘制七段数码管实例代码
2017/12/20 Python
python反编译学习之字节码详解
2019/05/19 Python
Python中无限循环需要什么条件
2020/05/27 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
村委会贫困证明范文
2014/09/21 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers
MySQL事务的隔离级别详情
2022/07/15 MySQL