H5如何實現(xiàn)拍照功能-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)H5如何實現(xiàn)拍照功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團隊的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)堅持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因為“專注所以專業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),小程序設(shè)計,軟件按需策劃設(shè)計等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。

HTML5拍照首先,我們看看HTML代碼結(jié)構(gòu),當(dāng)然,這部分的DOM內(nèi)容應(yīng)該是在用戶允許使用其攝像頭事件出發(fā)后,動態(tài)加載生成的,感興趣的朋友可以了解下 演示地址: HTML5拍照演示
首先,我們看看HTML代碼結(jié)構(gòu),當(dāng)然,這部分的DOM內(nèi)容應(yīng)該是在用戶允許使用其攝像頭事件出發(fā)后,動態(tài)加載生成的。
注意: 我們采用的是 640X480的分辨率,如果采用JS動態(tài)生成,那么您是可以靈活控制分辨率的。

代碼如下:

<!-- 
聲明: 此p應(yīng)該在允許使用webcam,網(wǎng)絡(luò)攝像頭之后動態(tài)生成 
寬高: 640 *480,當(dāng)然,可以動態(tài)控制啦! 
--> 
<!-- 
Ide
all
y these elements aren't created until it's confirmed that the 
client supports video/camera, but 
for
 the sake of illustrating the 
elements involved, they are created with markup (not 
JavaScript
) 
--> 
<video id="video" 
width
="640" 
height
="480" 
autoplay
></video> 
<button id="snap">Snap Photo</button> 
<
canvas
 id="canvas" width="640" height="480"></canvas>

JavaScript
只要上面的HTML元素創(chuàng)建完成,那么JavaScript部分將簡單的超乎你想象的簡單:

代碼如下:

// 設(shè)置事件監(jiān)聽,DOM內(nèi)容加載完成,和
jQuery
的$.ready() 效果差不多。 
window.addEvent
List
ener("DOMContentLoaded", function() { 
// canvas 元素將用于抓拍 
var canvas = 
document
.getElementById("canvas"), 
context = canvas.getContext("2d"), 
// video 元素,將用于接收并播放攝像頭 的數(shù)據(jù)流 
video = document.getElementById("video"), 
videoObj = { "video": true }, 
// 一個出錯的
回調(diào)函數(shù)
,在控制臺打印出錯信息 
errBack = function(error) { 
if
("
object
" === typeof window.console){ 
console.log("Video capture error: ", error.code); 
} 
}; 
// Put video listeners into place 
// 針對標(biāo)準(zhǔn)的瀏覽器 
if(navigator.getUserMedia) { // Standard 
navigator.getUserMedia(videoObj, function(stream) { 
video.src = stream; 
video.play(); 
}, errBack); 
} 
else
 if(navigator.webkitGetUserMedia) { // WebKit-prefixed 
navigator.webkitGetUserMedia(videoObj, function(stream){ 
video.src = window.webkitURL.createObjectURL(stream); 
video.play(); 
}, errBack); 
} 
// 對拍照
按鈕
的事件監(jiān)聽 
document.getElementById("snap").addEventListener("click", function() { 
// 畫到畫布上 
context.drawImage(video, 0, 0, 640, 480); 
}); 
}, false);

最后,記得講您的網(wǎng)頁放到web服務(wù)器下面,然后通過http協(xié)議來訪問哦。
另外,需要瀏覽器版本較新,并且支持HTML5的相關(guān)新特性才可以。
譯者不算稱職啦,沒有按原文來翻譯。使用的瀏覽器是chrome 28。
最后,貼上完整的代碼,比較呆板。

代碼如下:

<!DOCTYPE html> 
<html> 
<head> 
<title> 瀏覽器webcamera </title> 
<meta name="Generator" content="EditPlus"> 
<meta name="Author" content="renfufei@qq.com"> 
<meta name="Description" content="inveted by: http://davidwalsh.name/browser-camera"> 
<script> 
// 設(shè)置事件監(jiān)聽,DOM內(nèi)容加載完成,和jQuery的$.ready() 效果差不多。 
window.addEventListener("DOMContentLoaded", function() { 
// canvas 元素將用于抓拍 
var canvas = document.getElementById("canvas"), 
context = canvas.getContext("2d"), 
// video 元素,將用于接收并播放攝像頭 的數(shù)據(jù)流 
video = document.getElementById("video"), 
videoObj = { "video": true }, 
// 一個出錯的回調(diào)函數(shù),在控制臺打印出錯信息 
errBack = function(error) { 
if("object" === typeof window.console){ 
console.log("Video capture error: ", error.code); 
} 
}; 
// Put video listeners into place 
// 針對標(biāo)準(zhǔn)的瀏覽器 
if(navigator.getUserMedia) { // Standard 
navigator.getUserMedia(videoObj, function(stream) { 
video.src = stream; 
video.play(); 
}, errBack); 
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed 
navigator.webkitGetUserMedia(videoObj, function(stream){ 
video.src = window.webkitURL.createObjectURL(stream); 
video.play(); 
}, errBack); 
} 
// 對拍照按鈕的事件監(jiān)聽 
document.getElementById("snap").addEventListener("click", function() { 
// 畫到畫布上 
context.drawImage(video, 0, 0, 640, 480); 
}); 
}, false); 
</script> 
</head> 
<body> 
<p> 
<!-- 
聲明: 此p應(yīng)該在允許使用webcam,網(wǎng)絡(luò)攝像頭之后動態(tài)生成 
寬高: 640 *480,當(dāng)然,可以動態(tài)控制啦! 
--> 
<!-- 
Ideally these elements aren't created until it's confirmed that the 
client supports video/camera, but for the sake of illustrating the 
elements involved, they are created with markup (not JavaScript) 
--> 
<video id="video" width="640" height="480" autoplay></video> 
<button id="snap">Snap Photo</button> 
<canvas id="canvas" width="640" height="480"></canvas> 
</p> 
</body> 
</html>

關(guān)于H5如何實現(xiàn)拍照功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享題目:H5如何實現(xiàn)拍照功能-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article12/ipddc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、定制網(wǎng)站定制開發(fā)、云服務(wù)器網(wǎng)站營銷、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)