本文主要講解 手機瀏覽器 如何拍照 php
最近作一個項目要用到拍照而後上傳照片,可是網頁拍照通常都是用Flash作的,而咱們主要是H5頁面,若是在微信裏面有權限就能夠經過JSSDK調起攝像頭拍照的。這裏咱們主要說下手機端瀏覽器如何調起攝像頭 css
不須要特別的支持,只須要一行代碼就能夠了 html
<input id="upload" type="file" accept="image/*;" capture="camera" >
原理是用js獲取input file的圖像流,而後賦給img標籤的src屬性,而後再設置這個img的css,就能獲得你要的效果了,代碼以下 html5
; var demo_h5_upload_ops = { init:function(){ this.eventBind(); }, eventBind:function(){ var that = this; $("#upload").change(function(){ var reader = new FileReader(); reader.onload = function (e) { that.compress(this.result); }; reader.readAsDataURL(this.files[0]); }); }, compress : function (res) { var that = this; var img = new Image(), maxH = 300; img.onload = function () { var cvs = document.createElement('canvas'), ctx = cvs.getContext('2d'); if(img.height > maxH) { img.width *= maxH / img.height; img.height = maxH; } cvs.width = img.width; cvs.height = img.height; ctx.clearRect(0, 0, cvs.width, cvs.height); ctx.drawImage(img, 0, 0, img.width, img.height); var dataUrl = cvs.toDataURL('image/jpeg', 1); $(".img_wrap").attr("src",dataUrl); $(".img_wrap").show(); // 上傳略 that.upload( dataUrl ); }; img.src = res; }, upload:function( image_data ){ /*這裏寫上次方法,圖片流是base64_encode的*/ } }; $(document).ready( function(){ demo_h5_upload_ops.init(); } );
地址:http://m.54php.cn/demo/h5_upload 也能夠手機掃描下圖 canvas
手機 | UC瀏覽器 | 微信 |
IOS | 支持拍照上傳 瀏覽器 支持圖庫選擇上上傳 微信 |
支持拍照上傳 運維 支持圖庫選擇上傳 測試 |
Android | 支持拍照上傳 this 支持圖庫選擇上傳 |
不支持拍照上傳 支持圖庫選擇上傳 |
本人IOS 系統 親自測試了UC瀏覽器和微信自帶瀏覽器 完美兼容