[英]How to get original image from webcam in js?
您使用的是视频html元素的大小,而不是流的大小。 这就是照片被拉伸的原因。 您应该使用视频轨道的大小。
如果在调用MediaDevices.getUserMedia时指定了它, 请使用这些值。 否则,从视频轨道( MediaStreamTrack.getSettings() )中检索它们。
video.videoWidth不是视频的实际宽度,因此您在新画布上会得到不同的比率。 尝试这个:
var videoRatio = video.videoWidth / video.videoHeight;
var width = video.offsetWidth, height = video.offsetHeight;
var elementRatio = width/height;
if(elementRatio > videoRatio) width = height * videoRatio;
else height = width / videoRatio;
canvas.width = width;
canvas.height = height;
context.drawImage(video,0,0,width,height);
canvas.style.display='block';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.