中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

html5如何實現拍照功能

發布時間:2022-03-05 10:29:31 來源:億速云 閱讀:660 作者:小新 欄目:web開發

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

1、 視頻流

HTML5 The Media Capture API提供了對攝像頭的可編程訪問,用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。我們需要做的是添加一個HTML5的Video標簽,并將從攝像頭獲得視頻作為這個標簽的輸入來源(請注意目前僅Chrome和Opera支持getUserMedia)。

復制代碼

代碼如下:

<videoidvideoid=”video”autoplay=”"></video>

<script>

varvideo_element=document.getElementById(&lsquo;video&rsquo;);

if(navigator.getUserMedia){//operashoulduseopera.getUserMedianow

navigator.getUserMedia(&lsquo;video&rsquo;,success,error);

}

functionsuccess(stream){

video_element.src=stream;

}

</script>

視頻流

2、 拍照

拍照功能,我們采用HTML5的Canvas實時捕獲Video標簽的內容,Video元素能作為Canvas圖像的輸入,這一點很棒。主要代碼如下:

復制代碼

代碼如下:

JavaScript Code復制內容到剪貼板

var canvas=document.createElement(&lsquo;canvas&rsquo;);

var ctx=canvas.getContext(&rsquo;2d&rsquo;);

var cw=vw;

var ch=vh;

ctx.fillStyle=”#ffffff”;

ctx.fillRect(0,0,cw,ch);

ctx.drawImage(video_element,0,0,vvw,vvh,0,0,vw,vh);

document.body.append(canvas);

3、 圖片獲取

下面我們要從Canvas獲取圖片數據,其核心思路是用canvas的toDataURL將Canvas的數據轉換為base64位編碼的PNG圖像,類似于“data:image/png;base64,xxxxx”的格式。

復制代碼

代碼如下:

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

因為真正圖像數據是base64編碼逗號之后的部分,所以我們實際服務器處理的圖像數據應該是這部分,我們可以用兩種辦法來獲取。

第一種:是在前端截取22位以后的字符串作為圖像數據,例如:

復制代碼

代碼如下:

var data=imgData.substr(22);

如果要在上傳前獲取圖片的大小,可以使用:

復制代碼

代碼如下:

var length=atob(data).length;//atobdecodesastringofdatawhichhasbeenencodedusingbase-64encoding

第二種:是在后端獲取傳輸的數據后用后臺語言截取22位以后的字符串。例如PHP里:

復制代碼

代碼如下:

$image=base64_decode(str_replace(&lsquo;data:image/jpeg;base64,&rsquo;,”,$data);

4、 圖片上傳

在前端可以使用Ajax將上面獲得的圖片數據上傳到后臺腳本。例如使用jQuery時:

復制代碼

代碼如下:

$.post(&lsquo;upload.php&rsquo;,{&lsquo;data&rsquo;:data});

 在后臺我們用PHP腳本接收數據并存儲為圖片。

復制代碼

代碼如下:

functionconvert_data($data){

$image=base64_decode(str_replace(&lsquo;data:image/jpeg;base64,&rsquo;,”,$data);

save_to_file($image);

}

functionsave_to_file($image){

$fp=fopen($filename,&rsquo;w');

fwrite($fp,$image);

fclose($fp);

}

關于“html5如何實現拍照功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

班戈县| 定安县| 嘉鱼县| 福海县| 库尔勒市| 建始县| 宿松县| 通辽市| 秦安县| 衡东县| 永修县| 广宗县| 昆明市| 郯城县| 庆阳市| 光泽县| 昌吉市| 胶州市| 扎囊县| 基隆市| 民勤县| 怀仁县| 南涧| 安新县| 扎鲁特旗| 新干县| 蒙城县| 永春县| 黑河市| 商都县| 西乌珠穆沁旗| 镇江市| 嘉荫县| 九龙城区| 桃园县| 郓城县| 建平县| 黄冈市| 阜平县| 莱芜市| 和政县|