成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HTML 5實現拍照上傳應用實現

開發 前端
HTML5 The Media Capture API提供了對攝像頭的可編程訪問,用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。我們需要做的是添加一個HTML5的Video標簽,并將從攝像頭獲得視頻作為這個標簽的輸入來源。

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

1、視頻流

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

  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>   

 

視頻流

2、 拍照

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

  1. <script>   
  2. varcanvas=document.createElement(‘canvas’);   
  3. varctx=canvas.getContext(’2d’);   
  4. varcw=vw;   
  5. varch=vh;   
  6. ctx.fillStyle=”#ffffff”;   
  7. ctx.fillRect(0,0,cw,ch);   
  8. ctx.drawImage(video_element,0,0,vvw,vvh,0,0,vw,vh);   
  9. document.body.append(canvas);   
  10. </script>   

3、 圖片獲取

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

  1. varimgData=canvas.toDataURL(“image/png”);  

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

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

  1. vardata=imgData.substr(22);   

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

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

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

  1. $image=base64_decode(str_replace(‘data:image/jpeg;base64,’,”,$data);   

4、 圖片上傳

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

  1. $.post(‘upload.php’,{‘data’:data});   

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

  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. }   

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

[[74850]]

【編輯推薦】

  1. HTML 5實現淘寶語音搜索功能
  2. HTML 5如何實現緩沖效果
  3. HTML 5開發的優秀網頁游戲
  4. HTML 5之Pages&Dialogs
  5. HTML 5實現手機搖一搖的功能
責任編輯:張偉 來源: HTML5研究小組
相關推薦

2023-02-26 22:06:22

Electron瀏覽器開發

2012-01-04 00:10:52

ibmdw

2013-08-08 10:00:01

Amazon AppsHTML5

2012-05-09 14:49:23

HTML5

2012-06-04 14:47:42

HTML5

2011-06-13 10:07:33

HTML 5CSS3移動應用

2012-05-10 15:41:46

HTML5

2012-02-27 10:00:50

HTML 5

2010-01-28 14:51:01

Android拍照

2014-09-12 10:30:51

HTML5熱力圖

2012-10-17 14:25:29

HTML5WebGLWeb

2012-05-17 13:17:26

HTML5

2021-10-15 10:45:19

5G 5G網絡Verizon

2019-05-28 10:27:51

AI 數據人工智能

2016-02-22 10:30:38

AngularJSHTML5攝像頭

2012-09-24 11:11:32

HTML5游戲開發JavaScript

2012-12-03 13:53:38

IBMdW

2012-08-10 10:15:50

HTML5

2018-05-30 08:54:00

離線存儲HTML5

2013-04-12 10:05:49

HTML5WebSocket
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美极品少妇xxxxⅹ免费视频 | 三级黄色片在线观看 | 日韩伦理一区二区三区 | 国产成人精品综合 | 日韩av在线免费 | 日本精品视频一区二区 | 久久久久久国产精品mv | 久久免费福利 | 亚洲一二三区不卡 | 超碰97av| 四虎影音 | 九九九视频在线 | 日本一二三区电影 | 亚洲精品一区在线观看 | 国产一区二区三区色淫影院 | 天天插天天操 | 黄色毛片在线观看 | 九九久久精品视频 | 亚洲成av | 亚洲国产精品一区二区www | 成年人在线电影 | 中文字幕在线欧美 | www.久久影视 | 久久蜜桃资源一区二区老牛 | 一区在线观看 | 欧美乱码精品一区二区三区 | 国产精品久久久久久久久久三级 | 久久精品国产亚洲 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 欧美a在线| 国产精品高潮呻吟久久aⅴ码 | av毛片在线免费观看 | av一二三四 | 久久男人 | 99精品欧美一区二区三区 | 夜夜草 | 久夜精品 | 手机在线不卡av | 天堂久| 国产精品久久久久久久久久久久 | av免费观看网站 |