91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么用HTML5實現拍照上傳應用

發布時間:2022-02-24 15:18:36 來源:億速云 閱讀:212 作者:小新 欄目:web開發

這篇文章給大家分享的是有關怎么用HTML5實現拍照上傳應用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在HTML5規范的支持下,WebApp在手機上拍照已經成為可能。在下面,我將講解Web App如何用手機進行拍照,顯示在頁面上并上傳到服務器

1、 視頻流

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

XML/HTML Code復制內容到剪貼板

<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”的格式。

JavaScript Code復制內容到剪貼板

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

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

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

JavaScript Code復制內容到剪貼板

var data=imgData.substr(22);  

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

JavaScript Code復制內容到剪貼板

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

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

JavaScript Code復制內容到剪貼板

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

4、 圖片上傳

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

JavaScript Code復制內容到剪貼板

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

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

JavaScript Code復制內容到剪貼板

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);  

}  

請注意,以上的解決方案不僅能用于Web App拍照上傳,并且你可以實現把Canvas的輸出轉換為圖片上傳的功能。這樣你可以使用Canvas為用戶提供圖片編輯,例如裁剪、上色、涂鴉的畫板功能,然后把用戶編輯完的圖片保存到服務器上。

感謝各位的閱讀!關于“怎么用HTML5實現拍照上傳應用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

南华县| 阳东县| 德阳市| 白河县| 波密县| 涟源市| 卢龙县| 永平县| 宁安市| 达孜县| 响水县| 八宿县| 安新县| 景洪市| 堆龙德庆县| 廊坊市| 青田县| 延津县| 钦州市| 西华县| 邵阳县| 阿拉善盟| 平潭县| 会昌县| 河池市| 长岛县| 绍兴市| 望奎县| 芷江| 达孜县| 上蔡县| 明星| 冕宁县| 芜湖县| 洛扎县| 兰西县| 云阳县| 阿巴嘎旗| 宜良县| 灵丘县| 万安县|