画布和HTML5实现的视频截图示例

它已经研究了一段时间的画布,突然奇迹想做一个截图的视频,然后拉图片做一个表情袋,哈哈哈哈哈。

制作方法:

1。在页面上加载视频

当使用画布制作这个屏幕截图时,首先必须确保视频已经加载到页面上,这样就可以很容易地操作:













在我的HTML5和视频中,提到浏览器预先加载进度和加载事件支持,这会影响视频播放和其他事件触发,因此我们使用JS构建视频来引入视频。

这种方式引入视频应该注意,不能引入多个源,因此有必要首先判断浏览器对视频格式的支持。

1.1使用canplaytype()来判断支持的视频格式的方法

的canplaytype()方法需要一个参数传递,这是视频的格式。

共同的价值:视频/ OGG;

视频/ MP4;

WebM视频/;

或编码器:

视频/ OGG;编解码器=Theora,Vorbis

视频/ MP4;编解码器=avc1.4d401e,MP4A。40.2

视频/ WebM;codesc =vp8.0,Vorbis

返回值:表示网页的支持级别:可能——最有可能支持(当输入值用编码器返回时),可能可能;(空字符串)不支持。

功能videotype(视频){

var类型=;

如果(video.canplaytype('video / MP4的)= = 'probably| | video.canplaytype('video / MP4的)= =也许){

类型= 'mp4;

} else if(video.canplaytype('video / OGG的)= = 'probably| | video.canplaytype('video / OGG的)= =可能''ogg}人){类型=;如果(video.canplaytype('video / WebM的)= = 'probably| | video.canplaytype('video / WebM的)= =也许){类型= 'webm};返回类型;


}



这个函数可以确定浏览器支持视频的格式。

1.2用js动态加载视频标签

从浏览器的支持格式来看,由于我使用了Chrome浏览器,我的浏览器支持MP4格式的视频,然后我们动态创建一个视频标签。

无功videoelem;

无功videodiv;

功能createvideo(){

videoelem = document.createelement(视频); / /创建视频

videodiv = document.getelementbyid(videopanel ); / /外容器的视频

videodiv.appendchild(videoelem);

VaR的V型= videotype(videoelem); / / mobiledevicemodel支持的格式

如果(V = =){

videodiv.innerhtml(不支持视频)

其他{ }

videoelem.setattribute('src、文本。+ V型);
}
}




因为我们必须在这里创建截图。纯视频没有截图的界面,所以我们将它复制到画布上,并在画布上播放视频,所以我们首先隐藏视频(显示:无)。

2。使用画布复制视频

现在视频正在浏览器上播放。下一步我们将它复制到画布上,首先建立了画布,然后我们把画布上下文。如何在画布上绘制视频,这里我们要使用一个函数的DrawImage函数的用法。

1.drawimage(IMG,x,y):在画布上的位置画一个img(x,y)。

2.drawimage(IMG,X,Y,宽度,高度):画一个宽,在画布的位置高度(x,y)高img。

3.drawimage(IMG,SX,SY,swidth,sheight,X,Y,宽度,高度):画在位置上的条宽度(X,画布的宽度)。

以上是绘制图像的使用,功能很强大。

在截图中,我们已经创建了画布-浏览器contextvideo,然后得出视频在这里:

contextvideo.drawimage(videoelem,0,0);


然后我们可以看到,我们画在画布上的一张图片,但视频是不断变化的,所以我们需要使用setInterval函数把视频源。

setInterval(函数(){ contextvideo,DrawImage(videoelem,0,0);},100)


的时间间隔是否会影响视频播放会卡的大小。 U3000 U3000

我们在这里展示视频到画布。然后做一个截图。

三.制作一个屏幕截图来显示画布面板

在这里,我们需要绘制一个canvas画布--网页上的contextimg,然后使用drawImage方法了,截图。

contextimg.drawimage(canvasvideo,0,0,canvasvideo.width,canvasvideo。高度);


此代码将是第一个画布到第二个画布。

4。制作截图按钮

制作一个按钮,然后绑定点击事件,然后点击最后一步,然后你可以做一个截图。

当图形被切割时,可以保存正确的键,然后将ps注入表达式包中。

以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。