使用SCALER_CROP_REGION裁剪时,Camera2预览被拉伸

我想使用camera2 API全屏显示预览.我选择的相机尺寸为4160×3120(16:9),屏幕为1080×1920(9:16).因此,如果我想对预览进行正确缩放,则必须裁剪相机输出:

Rect zoomCrop = new Rect(0, 0, 1755, 3120);
captureRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCrop);

裁剪的预览的尺寸应为1755×3120,并且比例为9:16.预览仍然很努力.

题 :
我是否正确使用SCALER_CROP_REGION?如果没有,我应该如何使用它?

提前致谢

解决方法:

我一直在努力解决同样的问题,因为我想将摄像机预览流实现为方形TextureView.

使用SCALER_CROP_REGION似乎是解决纵横比不兼容的问题的明显场所,但是我认为该操作实际上不会改变结果的纵横比,因此它不能防止拉伸/翘曲行为. (the docs talk about this)

通过实现与Camera2Basic示例项目中的转换类似的转换,我已经取得了进展-参见Camera2BasicFragment中的configureConfigform函数.

使用这种视图级别的缩放矩阵,您可以在不更改视图大小的情况下管理摄像机预览的缩放/裁剪.

上一篇:c – 使用单个图表进行Directshow预览和捕获和预览


下一篇:使用Javascript预览SVG?