首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getusermedia javascript的分辨率不是移动设备的

getusermedia javascript的分辨率不是移动设备的
EN

Stack Overflow用户
提问于 2020-11-19 21:01:55
回答 1查看 76关注 0票数 1

我正在做一个网站,用手机拍照,并对其进行识别处理。

下面是javascript的代码:

代码语言:javascript
复制
// Set constraints for the video stream
var constraints = { video: { facingMode: "environment", width: { ideal: 3000 }, height: { ideal: 3000 } }, audio: false };

// Define constants
const cameraView = document.querySelector("#camera--view"),
      cameraSensor = document.querySelector("#camera--sensor"),
      cameraTrigger = document.querySelector("#camera--trigger")
// Access the device camera and stream to cameraView
function cameraStart() {
    navigator.mediaDevices
        .getUserMedia(constraints)
        .then(function(stream) {
        track = stream.getTracks()[0];
        cameraView.srcObject = stream;
    })
    .catch(function(error) {
        console.error("Oops. Something is broken.", error);
    });
}
// Take a picture when cameraTrigger is tapped
cameraTrigger.onclick = function() {
    cameraTrigger.disabled = true;
    cameraTrigger.style.visibility = "hidden";
    cameraView.pause();
    track.stop();
    cameraSensor.width = cameraView.videoWidth;
    cameraSensor.height = cameraView.videoHeight;
    cameraSensor.getContext("2d").drawImage(cameraView, 0, 0);
    document.getElementById("imagen").value = cameraSensor.toDataURL("image/jpeg",1.0);
    document.getElementById("bot").click();

};

window.addEventListener("load", cameraStart, false); 

我将理想的宽度和高度设置为3000,这对我正在寻找的东西来说已经足够了,在此之前,我遇到了它寻找一些标准分辨率和质量太低的问题。然而,这只适用于一部手机。我正在尝试使用不同的手机,但我只能用一部摄像头最好的one+拍摄3000x3000的图像。其他手机返回的图像是2000x1000左右,但他们的相机是13Mpx,如果我用应用程序拍照,结果是4000x3000。

有什么想法吗?非常感谢你提前

EN

Stack Overflow用户

发布于 2020-11-20 22:53:33

当您给出ideal值时,您正在观察这些.getUserMedia()约束的工作方式。你的浏览器和设备的视频输入子系统会尽力满足你的需求。但是如果它不能匹配你想要的,它会给你它能做的。

如果你给了exact约束,例如,你可以让.getUserMedia()失败,而不是给你与你想要的东西不同的东西。

代码语言:javascript
复制
var constraints = { 
             video: { 
                    facingMode: "environment",
                    width:  { exact: 3000 }, 
                    height: { exact: 3000 } },
            audio: false };

当你的web应用程序打算在许多不同的设备上运行时,如果摄像头子系统对你的应用程序来说不够好,你可以这样做,让它失败。

代码语言:javascript
复制
var constraints = { 
             video: { 
                    facingMode: "environment",
                    width:  { min: 1920, ideal: 3000 }, 
                    height: { min: 1080, ideal: 3000 } },
            audio: false };

在所有情况下,您都必须像您所做的那样,查看.videoWidth.videoHeight,以确定相机子系统实际提供给您的内容。

为网络摄像头和移动设备摄像头设计的应用程序必须灵活地处理它们接收到的图片的尺寸。野外相机的质量和分辨率是非常不稳定的。

不幸的是,一个需要非常大图像尺寸的web应用程序在野外不太可能是很有用的。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64912234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档