Mar*_*sik 5 android android-camera
我想使用Camera2 API(在5.0版本的android中添加)从android面向相机捕获4:3宽高比的视频.除非相机具有16:9传感器阵列(作为Samsung Galaxy S5上的前置摄像头),否则它可以正常工作.在这种情况下,图像看起来像是捕获16:9图像并被挤压到MediaRecorder提供的4:3表面.
根据文档,只要MediaRecorder的大小设置为getOutputSizes(MediaRecorder.class)提供的大小之一,就不需要任何其他配置.相机应自动裁剪图片,使其适合MediaRecorder表面的大小.
我测试了相反的情况 - 在相机上用4:3传感器阵列(Nexus-5的前置摄像头)录制16:9视频.它工作正常 - 图片裁剪为16:9宽高比.
我认为这是android API中的一个错误,但是想看看我在这里想念的是什么.
重现该问题的最简单方法是使用谷歌提供的camera2Basic示例应用程序进行以下更改,切换到使用前置摄像头和4:3大小进行预览.它在Nexus-5上正常工作,但在三星Galaxy S5上提供拉伸图像.三星Galaxy S5(android 5.0)上的camera2Basic应用程序的截图.

如果图像是 16x9,您可以(并且应该)使用内置裁剪功能来选择图像的 4x3 区域。也就是说,只需裁剪以丢弃两侧“不必要”的像素即可。只需使用CaptureRequest.SCALER_CROP_REGION将字段/值添加到 CaptureRequest 即可完成此操作。
该链接对其进行了更多解释,但您真正需要的是一个 if 语句来检查传感器的比率,并进行一些数学运算来计算出您想要选择的区域的边界。
| 归档时间: |
|
| 查看次数: |
3918 次 |
| 最近记录: |