在HTML5規范的支持下,WebApp在手機上拍照已經成為可能。在下面,我將講解Web App如何用手機進行拍照,顯示在頁面上並上傳到服務器。
1、 視頻流
HTML5 The Media Capture API提供了對攝像頭的可編程訪問,用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。我們需要做的是添加一個HTML5的Video標簽,並將從攝像頭獲得視頻作為這個標簽的輸入來源(請注意目前僅Chrome和Opera支持getUserMedia)。
- <video id="video" autoplay=""></video>
- <script>
- var video_element = document.getElementById('video');
- if (navigator.getUserMedia) { // opera should use opera.getUserMedia now
- navigator.getUserMedia('video',success, error);
- }
- function success(stream) {
- video_element.src =stream;
- }
- </script>
2、拍照
拍照功能,我們采用HTML5的Canvas實時捕獲Video標簽的內容,Video元素能作為Canvas圖像的輸入,這一點很棒。主要代碼如下:
- <script>
- var canvas =document.createElement('canvas');
-
- var ctx = canvas.getContext('2d');
- 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);
- </script>