【发布时间】:2019-01-07 01:58:56
【问题描述】:
在我们的应用程序中,我们同时支持 API,Camera 和 Camera2,用于拍照。我注意到的是,我们在两个 API 中获得了不同的放大深度。
使用 Camera1 API,设置缩放级别很简单:
Camera.Paramenters params = mCamera.getParameters();
params.setZoom(zoomLevel);
mCamera.setParameters(params);
使用 Camera2 API,缩放级别设置如下(为标准 Camera2 示例应用程序拍摄的代码):
final int zoomScale = 200;
captureBuilder.set(CaptureRequest.SCALER_CROP_REGION, new
Rect(zoomScale * mZoomLevel, zoomScale * mZoomLevel, mStartBounds.right
- (zoomScale * mZoomLevel), mStartBounds.bottom - (zoomScale * mZoomLevel)));
我使用的 Android 设备的最大缩放值为 4。在缩放级别 4 时,Camera1 的放大倍数似乎比 Camera2 大得多(至少 10%)。
我想知道我是否在计算中遗漏了什么,或者仅仅是 Camera2 API 的设计方式。问候。
【问题讨论】: