【发布时间】:2014-10-27 08:24:33
【问题描述】:
我正在尝试在带有 camera2 接口的 Android 5.0 上获取数字缩放帧。 该功能的适当文档是developer.android.com/camera2/captureRequest
我的应用程序中使用的表面:
- SurafaceView(1920x1080,16:9 纵横比)
- ImageReader(3264x2448,4:3 纵横比)
相机的传感器尺寸为 3280x2464(4:3 纵横比)
我想从传感器获取的裁剪区域是:
Rect zoomCropPreview = new Rect(1094, 822, 2186, 1642); //(1092x820, 4:3 aspect ratio)
我将此 Rect 设置为预览请求的参数:
previewRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.setRepeatingRequest(previewRequestBuilder.build(), null, null);
并拍摄静止图像:
stillRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.capture(stillRequestBuilder.build(), new captureListener() , null);
预期结果:
- 因为裁剪矩形是 4:3 的比例,那么预览应该垂直裁剪(信箱)
- 静止图像应该是精确的裁剪区域。
- 预览和静止图像都应以场景的同一点为中心,并且应仅在垂直边缘上有所不同。
实际结果:
- 不同场景上的预览和静止图像点似乎垂直移动。看附件图片。
我做错了什么?
【问题讨论】:
-
设备的硬件级别是多少(developer.android.com/reference/android/hardware/camera2/…)?如果是 LEGACY,您可能会遇到在以后的 Android 版本中修复的操作系统错误。
标签: android android-camera zooming android-5.0-lollipop