久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

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

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

1、 視頻流

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

XML/HTML Code復制內容到剪貼板
  1. <videoidvideoid=”video”autoplay=”"></video>  
  2. <script>  
  3. varvideo_element=document.getElementById(‘video’);  
  4. if(navigator.getUserMedia){//operashoulduseopera.getUserMedianow  
  5. navigator.getUserMedia(‘video’,success,error);  
  6. }  
  7. functionsuccess(stream){  
  8. video_element.src=stream;  
  9. }  
  10. </script>  

 

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

視頻流

2、 拍照

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

 

JavaScript Code復制內容到剪貼板
  1. var canvas=document.createElement(‘canvas’);    
  2. var ctx=canvas.getContext(’2d’);    
  3. var cw=vw;    
  4. var ch=vh;    
  5. ctx.fillStyle=”#ffffff”;    
  6. ctx.fillRect(0,0,cw,ch);    
  7. ctx.drawImage(video_element,0,0,vvw,vvh,0,0,vw,vh);    
  8. document.body.append(canvas);    

3、 圖片獲取

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

JavaScript Code復制內容到剪貼板
  1. var imgData=canvas.toDataURL(“image/png”);  

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

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

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

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

 

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

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

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

4、 圖片上傳

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

JavaScript Code復制內容到剪貼板
  1. $.post(‘upload.php’,{‘data’:data});  

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

JavaScript Code復制內容到剪貼板
  1. functionconvert_data($data){  
  2. $image=base64_decode(str_replace(‘data:image/jpeg;base64,’,”,$data);  
  3. save_to_file($image);  
  4. }  
  5. functionsave_to_file($image){  
  6. $fp=fopen($filename,’w');  
  7. fwrite($fp,$image);  
  8. fclose($fp);  
  9. }  
  10.    

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

Canvas涂鴉功能

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了有關HTML5頁面在iPhoneX適配問題,需要的朋友可以參考下
本篇文章主要介紹了html5中canvas圖表實現柱狀圖的示例,本文使用canvas來實現一個圖表,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
Adobe公司出品的多媒體處理軟件產品線較多,涵蓋了音視頻編輯、圖像處理、平面設計、影視后期等領域。這篇文章主要介紹了Adobe Html5 Extension開發初體驗圖文教程,非常不錯,需要的朋
這篇文章主要介紹了基于HTML5的WebGL經典3D虛擬機房漫游動畫,需要的朋友可以參考下
這篇文章主要介紹了手機端用rem+scss做適配的詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本篇文章主要介紹了canvas 實現 github404動態效果的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 亚洲精品久久 | 黄色在线免费看 | 日韩av成人在线 | 色婷婷国产精品综合在线观看 | 日本中文字幕在线观看 | 欧美一区二区三区在线视频 | 免费看黄色aaaaaa 片 | 久久精品视频一区二区 | 国产精品天美传媒入口 | 六月婷婷综合 | 亚洲一区二区在线播放 | 久久er99热精品一区二区 | 成人在线网址 | 国产免费成人 | 快播少女爱欢乐 | 日韩一区中文字幕 | 日韩欧美国产高清91 | 日韩欧美一区二区三区 | 欧美午夜精品一区二区三区 | 中文字幕观看 | www.超碰在线| 五月婷婷综合网 | 久草视频观看 | 一级黄色免费看 | 青青草视频在线观看 | 日韩二区三区 | 青青草免费在线视频 | 红桃av在线 | 免费网站观看www在线观 | av网址在线 | 国产欧美一区二区精品性色超碰 | 亚洲一级在线 | 国产精品久久久久久久久久 | 精品在线一区 | 秋霞福利视频 | 中国美女乱淫免费看视频 | 亚洲第一色网 | 国产三级一区 | 日本黄色一级视频 | 午夜一级片 | 国产在线视频一区 |