canvas與html5實(shí)現(xiàn)視頻截圖功能示例(3)
這個(gè)函數(shù)可以判斷欣賞器對(duì)video支持的格式。
1.2使用js動(dòng)態(tài)加載video標(biāo)簽
這里判斷了欣賞器的支持格式后,因?yàn)槲矣玫氖莄hrome,所以我的欣賞器支持mp4格式的視頻,然后我們動(dòng)態(tài)創(chuàng)建一個(gè)video標(biāo)簽。
var videoElem; var videoDiv; function createVideo(){ videoElem=document.createElement("video");//創(chuàng)建video videoDiv=document.getElementById("videopanel");//獲取video的外層容器 videoDiv.appendChild(videoElem); var vtype=videoType(videoElem);//判斷欣賞器支持的格式 if(vtype==""){ videoDiv.innerHtml('不支持video') }else{ videoElem.setAttribute('src',"text."+vtype); } }
因?yàn)檫@里我們要制作截圖功能,單純的video不具備截圖的接口,所以我們要把它復(fù)制到canvas上,在canvas上播出這個(gè)視頻,所以這里我們先把video給隱蔽掉(display:none)。
2.使用canvas復(fù)制視頻
如今video已經(jīng)在欣賞器上播放了,接下來(lái)我們把它復(fù)制到canvas里,首先建立canvas,然后得到畫(huà)布context,這些就不說(shuō)了。如何把video畫(huà)在canvas上,這里我們要使用一個(gè)函數(shù)。drawImage函數(shù)的用法
1.drawImage(img,x,y):在畫(huà)布的(x,y)這個(gè)位置畫(huà)一個(gè)img;
2.drawImage(img,x,y,width,height):在畫(huà)布的(x,y)這個(gè)位置畫(huà)一個(gè)width寬,height高的img;
3.drawImage(img,sx,sy,swidth,sheight,x,y,width,height):在畫(huà)布的(x,y)位置畫(huà)一個(gè)img的(sx,sy)位置的swidth寬,sheight高的一塊截圖,畫(huà)在畫(huà)布上要縮放到width寬和height高。
以上就是drawImage的用法了,這個(gè)函數(shù)特別很是的壯大。
回到做截圖,我們?nèi)缃褚呀?jīng)在欣賞器上創(chuàng)建好了畫(huà)布--contextVideo,接著我們?cè)谶@里把視頻畫(huà)出來(lái):
contextVideo.drawImage(videoElem,0,0);
然后我們可以看到在canvas里畫(huà)了一張圖,但是視頻是賡續(xù)轉(zhuǎn)變的,所以我們必要使用setInterval函數(shù)賡續(xù)的吧video作為源來(lái)畫(huà)圖。
setInterval(function(){<br> contextVideo,drawImage(videoElem,0,0);<br>},100)
這里時(shí)間間隔的大小會(huì)影響到視頻播放是否會(huì)卡。
到這里我們就把video搬到canvas上展示了。接下來(lái)制作截圖。
3.制作截圖展示canvas面板
這里我們必要再在頁(yè)面上畫(huà)一個(gè)canvas畫(huà)布--contextImg,然后再次行使drawImage方法,截圖。
contextImg.drawImage(canvasVideo,0,0,canvasVideo.width,canvasVideo.height);
這段代碼將第一個(gè)canvas畫(huà)到了第二個(gè)canvas上。
4.制作截圖按鈕
制作一個(gè)按鈕,然后綁定click事件,點(diǎn)擊后就調(diào)用上一步的函數(shù),如許就可以制作一個(gè)截圖了。
當(dāng)圖截好后可以將圖右鍵保存下來(lái),然后倒入ps制作表情包了。
以上就是本文的悉數(shù)內(nèi)容,盼望對(duì)大家的學(xué)習(xí)有所幫助,也盼望大家多多支持圖趣網(wǎng)。
本文地址:http://www.pkvc.cn/tutorial/wd231.html
您可能還喜歡
- jquery Jcrop圖像裁切插件中文api文檔
- @media適配不同尺寸的手機(jī)
- 返回上一頁(yè)代碼的幾種寫(xiě)法
- Dreamweaver CC 2014新功能介紹
- 深入了解viewport和px
- 優(yōu)秀CSS代碼書(shū)寫(xiě)的10個(gè)規(guī)范
- 畫(huà)出你的風(fēng)格:HTML5創(chuàng)意畫(huà)板的設(shè)計(jì)教程
- Div中height:100%無(wú)效的解決辦法
- 網(wǎng)頁(yè)前端-網(wǎng)頁(yè)切圖命名規(guī)范
- 為網(wǎng)頁(yè)設(shè)計(jì)師而生的14個(gè)文本編輯器
- 專(zhuān)訪(fǎng):石墨文檔產(chǎn)品總監(jiān)羅穎
- UI設(shè)計(jì)不得不知的移動(dòng)端UI尺寸適
- 光音移動(dòng)設(shè)計(jì)規(guī)范 — 表單類(lèi)
- 體驗(yàn)設(shè)計(jì)中的排序問(wèn)題
- 網(wǎng)頁(yè)設(shè)計(jì)精粹 網(wǎng)頁(yè)中那些迷人的按
- aliued:響應(yīng)式設(shè)計(jì)的現(xiàn)狀與趨勢(shì)
- 10個(gè)智能對(duì)象處理的ps技巧
- 網(wǎng)頁(yè)UI - 原子設(shè)計(jì)理論(上)
- 如何通過(guò)設(shè)計(jì)提升banner點(diǎn)擊率?
- 晉小彥視覺(jué)設(shè)計(jì)系列文章(二):全屏