2013-04-06 112 views
6

我使用geUserMedia()从网络摄像头Intro捕获图像。我得到捕获高分辨率视频/图像html5

最佳分辨率为640 X 480,但我有高清网络摄像头与1280 X 720 记录视频, 拍照2592 X 1944年

如何捕获高分辨率照片?

这是一个代码示例。它不关心画布大小:

<video autoplay id="vid" style="display:none;"></video> 
<canvas id="canvas" width="1280" height="720" 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> 
+0

您可以使用媒体捕获API获取全分辨率图片。在这里看到答案; https://stackoverflow.com/a/36473227/200987 – oligofren 2017-11-06 13:23:13

回答

4

据我知道的WebRTC目前仅限于640×480,无论你有什么样的相机。希望这会很快改变。

+1

不再,1280x720作品(至少) – malletjo 2015-06-03 19:31:16

1

为别人喜欢我,谁在这里找到自己,那里http://webrtchacks.com/video-constraints-2/是一个有用的更新。

查看原始问题,请注意,据我了解,使用WebRTC拍摄静态照片实际上是从视频提取中提取静止帧,因此您将始终受到设备视频分辨率的限制,即使它能够自己捕捉更高分辨率的静止图像。