国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

如何使用HTML5實現拍照上傳應用

2020-03-24 15:55:27
字體:
來源:轉載
供稿:網友

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(‘video’); if(navigator.getUserMedia){//operashoulduseopera.getUserMedianow navigator.getUserMedia(‘video’,success,error); } functionsuccess(stream){ video_element.src=stream; } </script>

如何使用HTML5實現拍照上傳應用

視頻流

2、 拍照

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

JavaScript Code復制內容到剪貼板 varcanvas=document.createElement(‘canvas’); varctx=canvas.getContext(’2d’); varcw=vw; varch=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復制內容到剪貼板 varimgData=canvas.toDataURL(“image/png”);

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

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

JavaScript Code復制內容到剪貼板 vardata=imgData.substr(22);

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

JavaScript Code復制內容到剪貼板 varlength=atob(data).length;//atobdecodesastringofdatawhichhasbeenencodedusingbase-64encoding

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

JavaScript Code復制內容到剪貼板 $image=base64_decode(str_replace(‘data:image/jpeg;base64,’,”,$data);

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新干县| 固镇县| 乡宁县| 乐陵市| 庆云县| 新竹县| 子长县| 兴安县| 长兴县| 拉萨市| 顺昌县| 那坡县| 娄底市| 陕西省| 玉门市| 昌邑市| 邵阳县| 谢通门县| 哈尔滨市| 黔西| 遵义县| 仁寿县| 黑水县| 公安县| 额尔古纳市| 伊吾县| 无极县| 商城县| 宕昌县| 金华市| 通许县| 治多县| 高阳县| 吴江市| 辽阳市| 张家界市| 黄龙县| 平阴县| 方山县| 龙海市| 巧家县|