2016-02-07 19 views
9

Sto sviluppando un'applicazione Web che consente di sfogliare e scattare foto da locali e anche di acquisire immagini tramite la fotocamera. Sto usando il seguente codice e posso catturare la fotocamera del dispositivo.Scattare foto da webcam o fotocamera mobile nelle applicazioni Web

<input type="file" capture="camera" accept="image/*" id="cameraInput" name="cameraInput"> 

Ora, voglio ottenere l'immagine e onchangeevent, convertire in base64 e vogliono dimostrare in quella pagina stessa.

Gentilmente aiutami ragazzi!

+1

Eventuali duplicati di [Come accedere fotocamera di un cellulare da una web app?] (Http: // StackOverflow .com/questions/8581081/how-to-access-a-mobiles-camera-da-a-web-app) –

+0

Possibile duplicato di [Come ottenere i dati codificati base64 dall'immagine html] (http://stackoverflow.com/questions/15760764/how-to-get-base64-encoded-data-from-html-image) – Mazzy

+0

Questo non è un duplicato, poiché vuole visualizzare l'immagine sulla pagina, presumibilmente senza dovendo caricarlo prima. – Puzbie

risposta

7

Si può fare in questo modo:

$('#cameraInput').on('change', function(e){ 
$data = e.originalEvent.target.files[0]; 
    $reader = new FileReader(); 
    reader.onload = function(evt){ 
    $('#your_img_id').attr('src',evt.target.result); 
    reader.readAsDataUrl($data); 
}}); 
+4

Qualsiasi motivo stai utilizzando il 'bind' deprezzato vs' on'? – MCB

+3

Grazie! stavo usando questo prima che ora sto usando 'on' invece di' bind'. –

1

Miles Erickson e Henock Bongi, è necessario prendere reader.readAsDataUrl ($ data); fuori dalla funzione onload in modo che l'incendio onload.

Se non si desidera utilizzare jQuery vedi sotto:

function readFile(file) {              
 
    var reader = new FileReader(); 
 
    reader.onload = readSuccess;            
 
    function readSuccess(evt) {  
 
     document.getElementById("your_img_id").src = evt.target.result     
 
    }; 
 
    reader.readAsDataURL(file);            
 
} 
 

 
document.getElementById('cameraInput').onchange = function(e) { 
 
    readFile(e.srcElement.files[0]); 
 
};

+0

Qual è il punto nel rispondere a un post di 2 anni? in entrambi i casi è meglio usare URL.createObjectURL invece di usare il FileReader – Endless

+1

Il punto è di riferimento per le persone come me che impiegano 20 minuti a capire perché reader.onload non stia finendo :) –

Problemi correlati