我已经为 Android 创建了一个库(查看 this 了解更多信息),用于 Android 中的 Android Camera2 功能一切正常,但在全屏摄像头的宽高比问题上。
请检查下面的图像在预览和真实图片中的样子(只有预览有问题,而不是拍摄后的真实图片)
捕获的图像水平:
水平预览图像:
捕获的图像垂直:
垂直预览图像:
Google 的 Camera2 API 示例有类似的问题并已解决 here .
但是相同的代码在我的 React native 库代码中不起作用。可能是我对图像和视频都使用了一个代码,并为视频捕获添加了额外的代码。
最佳答案
相机传感器的纵横比通常与屏幕的纵横比不匹配。结果就是您目前正在经历的。
因为纵横比不匹配。您实际上不能强制预览为全屏。您必须选择“有效”维度。那你是怎么做到的?
对于传感器的尺寸,我们无能为力。我们要回答的问题是我的预览的高度应该是多少? (假设纵向模式)
这是一个例子:
传感器(假设人像):
- 宽度:50
- 高度:100
- 纵横比:(宽度/高度)= 0.5
屏幕(假设纵向):
- 宽度:400
- 高度:1000
- 纵横比:(宽度/高度)= 0.4
使用上述值,您的预览图像将被“拉伸(stretch)”。
修复方法如下:
我们知道我们想要的纵横比:0.5
宽度/高度= 0.5
我们知道屏幕的宽度(纵向):400
400/高度 = 0.5
高度 = 400/0.5 = 800
为了在 x 或 y 方向上没有拉伸(stretch),高度(假设纵向)需要为:预览宽度/所需的纵横比
关于android - React Native android camera2 纵横比问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47551921/