2013-06-30 167 views
1

如何上传的图片,我从一个摄像头了,i've found a code that worked (only on Chrome)上载从摄像头拍摄的照片

我使用的代码,并且当拍摄照片CLIC,我得到的图片,但我没有看到它的来源?

<video autoplay id="vid" style="display:none;"></video> 
<canvas id="canvas" width="640" height="480" style="border:1px solid #d3d3d3;"></canvas><br> 
<button onclick="snapshot()">Take Picture</button> 

<script type="text/javascript"> 

var video = document.querySelector("#vid"); 
var canvas = document.querySelector('#canvas'); 
var ctx = canvas.getContext('2d'); 
var localMediaStream = null; 

var onCameraFail = function (e) { 
    console.log('Camera did not work.', e); 
}; 

function snapshot() { 
    if (localMediaStream) { 
     ctx.drawImage(video, 0, 0); 
    } 
} 

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; 
window.URL = window.URL || window.webkitURL; 
navigator.getUserMedia({video:true}, function (stream) { 
    video.src = window.URL.createObjectURL(stream); 
    localMediaStream = stream; 
}, onCameraFail); 

</script> 

我如何将它添加到具有

<input name="avatar" class="avatar" type="file" required> 

,你可以看到,需要该领域的像素,所以如果它被添加到该字段的形式将看到一个表格作为一个非空?

为什么它不在Opera上工作?我使用Opera 12.15

更新:i found how to convert to canvas to image,但不知道如何来填补它的图像:

a = canvas.toDataURL("image/jpeg") 
document.getElementById("avatar").src = a 

,如果我使用JavaScript控制台,我得到的来源,但如果我验证表单中,表单认为图像仍然丢失,并且是空白的。

有什么想法?

回答

0

用300ms运行的快照()构建SetInterval。

该按钮仅停止间隔,)


<button onclick="clearInterval(ivl)">Take Picture</button> 

var ivl = setInterval(function(){ snapshot(); },300); 
相关问题