我正在开发一款安装了Windows 8.1的平板电脑(HP)。我们开发了一个web应用程序,使用Chrome浏览器从平板电脑访问,它使用getUserMedia接口访问平板电脑的摄像头(实现很简单,基于JavaScript,类似于这里的示例:https://davidwalsh.name/demo/camera.php)。我们的应用程序将用于拍摄身份证的照片,然后将其提交给servlet。
使用getUserMedia应用编程接口在浏览器中拍摄的图片的质量相当差,而且身份证上的字母有时在图像中不易阅读。如果我在同一平板电脑上使用Windows 8.1中的“相机”应用程序,并在相同的光线条件下从相同的距离拍摄相同的身份证,所得到的图像(JPEG)非常清晰。
为什么会有这样的质量差异呢?我阅读了有关jpeg API的所有内容,并尝试了所有可用的参数(约束、宽度、高度、getUserMedia质量),但我无法获得高质量的图像。为什么同一平板电脑上的同一摄像头在浏览器中使用以及与Windows摄像头应用程序一起使用时会出现如此大的质量差异?有没有办法在浏览器中获得更好的质量(开发自定义插件)?
发布于 2019-09-15 14:39:44
来回答你的问题“为什么会有质量上的差异?”简而言之,这是因为浏览器模拟摄像头提要,并在幕后进行图像转换,以允许将不同的流发送到不同的客户端。WebRTC的主要焦点是P2P媒体流,而不是拍摄高质量的照片。
你可以使用ImageCapture来获取更多的摄像头属性(并将其作为ImageBitmap),但目前对它的支持仍然非常弱。
请阅读下面我的答案,其中更深入地介绍了MediaCapture和ImageCapture的用例,以了解更多信息。
Why the difference in native camera resolution -vs- getUserMedia on iPad / iOS?
https://stackoverflow.com/questions/37656252
复制相似问题