我们正在构建一个相机应用程序,我们希望使用手动曝光。我们不希望曝光算法设置 ISO 和曝光持续时间;相反,我们希望它告诉我们我们设置的手动曝光与根据算法的正确曝光之间的区别。这样,我们可以在计算中考虑到这一点。
iOS 有这样一个 API exposureTargetOffset。Android camera2 有这样的 API 吗?
我不认为 camera2 库有这样的 API。但是,您可以计算ISO和曝光值与算法值之间的差异。
请按照以下步骤操作:
- 设置预览时,将自定义捕获回调:
this.previewCaptureSession.setRepeatingRequest(previewSession.build(),
customCaptureCallback, this.cameraHandler);
- 在自定义回调中,您可以通过查看当前预览来查询算法计算的 ISO 和曝光值
CameraCaptureSession.CaptureCallback customCaptureCallback = new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
super.onCaptureCompleted(session, request, result);
//you can store the values of these two below variables however you want
final Long exposureValue = result.get(CaptureResult.SENSOR_EXPOSURE_TIME);
final Integer isoValue = result.get(CaptureResult.SENSOR_SENSITIVITY);
}
}
- 您获得了当前的ISO和曝光,现在您可以将其与用户给定的ISO和曝光值进行比较