android - React Native android camera2 纵横比问题

标签 android react-native android-camera2

我已经为 Android 创建了一个库(查看 this 了解更多信息),用于 Android 中的 Android Camera2 功能一切正常,但在全屏摄像头的宽高比问题上。

请检查下面的图像在预览和真实图片中的样子(只有预览有问题,而不是拍摄后的真实图片)

捕获的图像水平:

enter image description here

水平预览图像:

enter image description here

捕获的图像垂直:

enter image description here

垂直预览图像:

enter image description here

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/

相关文章:

android - Android 6 中不调用 Application 类的 OnCreate

react-native:滚动时如何将标签栏粘贴到顶部?

javascript - 抛出错误时,React-native fetch 无法设置状态

android camera2 api - 一起录制视频声音和麦克风

android - Kotlin 运行时错误 kotlin.Any 未找到

android - 库中的类丢失

android - 除了使用默认模拟器之外,是否有任何测试 android 应用程序的解决方案?

react native 0.55.2上的Android构建错误

Android camera2 闪光灯在自动闪光模式下在弱光条件下不闪光

c++ - 安卓ndk camera2 api