HTML5調(diào)用手機(jī)攝像頭拍照的實現(xiàn)思路及代碼
來源:易賢網(wǎng) 閱讀:5208 次 日期:2014-07-22 18:05:46
溫馨提示:易賢網(wǎng)小編為您整理了“HTML5調(diào)用手機(jī)攝像頭拍照的實現(xiàn)思路及代碼”,方便廣大網(wǎng)友查閱!

小編將思路提供給了大家,學(xué)編程最重要的是實踐,我這雖然有完善的代碼,但是希望大家都可以自己寫出屬于自己的代碼

HTML5 The Media Capture API提供了對攝像頭的可編程訪問,用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。但實際上用html5調(diào)用手機(jī)攝像頭存在很多問題:

1)谷歌的發(fā)布的Chrome到了21版本后,才新增了一個用于高質(zhì)量視頻音頻通訊的getUserMedia API,該API允許Web應(yīng)用程序訪問攝像頭和麥克風(fēng),其他手機(jī)瀏覽器只有opera支持html5調(diào)用本地拍照功能

2)兩個瀏覽器均不支持訪問多個攝像頭:chrome不支持訪問后置攝像頭,pera支持訪問后置攝像頭的

android手機(jī),瀏覽器chrome32版本下實現(xiàn)了瀏覽器調(diào)用設(shè)備攝像頭進(jìn)行拍照。主要分3個步驟來完成:

1)獲取視頻流

添加一個HTML5的Video標(biāo)簽,并將從攝像頭獲得視頻作為這個標(biāo)簽的輸入來源

代碼如下:

var video = document.getElementByIdx_x_x("video");

navigator.getUserMedia({video:true}, function (stream) {

video.src = window.webkitURL.createObjectURL(stream);

}, function (error) { alert(error); });

2)拍照

關(guān)于拍照功能,采用HTML5的Canvas實時捕獲Video標(biāo)簽的內(nèi)容,Video元素能作為Canvas圖像的輸入

代碼如下:

function scamera() {

var videoElement = document.getElementByIdx_x_x('video');

var canvasObj = document.getElementByIdx_x_x('canvas1');

var context1 = canvasObj.getContext('2d');

context1.fillStyle = "#ffffff";

context1.fillRect(0, 0, 320, 240);

context1.drawImage(videoElement, 0, 0, 320, 240);

}

3)圖片獲取

要從Canvas獲取圖片數(shù)據(jù),其核心思路是用canvas的toDataURL將Canvas的數(shù)據(jù)轉(zhuǎn)換為base64位編碼的PNG圖像

代碼如下:

var imgData=canvas.toDataURL(“image/png”);

imgData格式如下:”data:image/png;base64,xxxxx“

真正圖像數(shù)據(jù)是base64編碼逗號之后的部分

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)頁制作
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)