<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>视频的黑白变换</title>
<style>
#myvideo{
width: 400px;
height: 300px;
}
</style>
<script>
window.addEventListener("load",function(){
//获得视频对象
var myvideo=document.getElementByIdx_x("myvideo");
//获得画布对象
var mycanvas=document.getElementByIdx_x("mycanvas");
var fps=1000/30;
//获取画布的宽度和高度
var w=mycanvas.width;
var h=mycanvas.height;
setInterval(function(){
var ctx=mycanvas.getContext("2d");
ctx.drawImage(myvideo,0,0,w,h);
//获取我们的此时的视频图像
var imageData=ctx.getImageData(0,0,w,h);
//下边是我们的灰色变换的函数
convertToGray(imageData.data);
//重新输出到画布上
ctx.putImageData(imageData,0,0);
},fps);
},true);
//我们的灰色变换的函数
function convertToGray(data){
var len=data.length;
var pixels=len/4;
for(var i=0;i<pixels;i++){
var r=data[i*4];
var g=data[i*4+1];
var b=data[i*4+2];
var gray=parseInt((11*r+16*g+5*b)/32);
data[i*4]=gray;
data[i*4+1]=gray;
data[i*4+2]=gray;
}
}
</script>
</head>
<body>
<video id="myvideo" controls>
<source src="video/first.mp4">
<source src="video/first.ogv">
<p>请选择支持html5 video标签的浏览器</p>
</video>
<canvas id="mycanvas" width="400" height="300" style="border: 1px solid red"></canvas>
</body>
</html>