首页 文章

React Native android camera2纵横比问题

提问于
浏览
1

我已经创建了一个库(请查看this以获取更多信息),因为Android for Android Camera2功能在Android中都运行良好,但在全屏相机的长宽比问题上 .

请检查下面的图像在预览和实际图片中的外观(只有预览有问题而不是捕获后的真实图片)

捕获的图像水平:

enter image description here

水平预览图像:

enter image description here

捕获的图像垂直:

enter image description here

预览图像垂直:

enter image description here

Google的Camera2 API样本有类似的问题并解决here .

但是相同的代码在我的本机库代码中没有工作 . 可能是我正在使用一个代码用于图像和视频,并添加额外的视频捕获代码 .

1 回答

  • 1

    通常,相机传感器纵横比与屏幕纵横比不匹配 . 结果就是您目前正在经历的事情 .

    由于纵横比不匹配 . 您实际上无法强制预览为全屏 . 您必须选择"valid"尺寸 . 那你怎么做的?

    有's nothing we can do about the sensor'的尺寸 . 我们要回答的问题是我的预览高度应该是多少? (假设是肖像模式)

    这是一个例子:

    传感器(假设人像):

    • 宽度:50

    • 身高:100

    • 纵横比:(宽度/高度)= 0.5

    屏幕(假设肖像):

    • 宽度:400

    • 身高:1000

    • 纵横比:(宽度/高度)= 0.4

    使用上面的值,您的预览图像将“伸展” .

    以下是修复方法:

    我们知道我们想要的宽高比: 0.5

    宽度/高度= 0.5

    我们知道屏幕的宽度(纵向): 400

    400 /身高= 0.5

    height = 400 / 0.5 = 800

    为了在x或y方向上没有拉伸,高度(假设肖像)需要是: preview width / desired aspect ratio

相关问题