这里我遇到了新的Camera API(android.hardware.Camera2
)。在我的应用程序中,我想在相机上设置手动ISO控制和缩放控制,但我不知道该怎么做。我知道我需要更改以下内容:
SENSOR_SENSITIVITY
。LENS_FOCAL_LENGTH
进行缩放。但问题是,android开发者网站上只有定义和描述,没有例子说明如何在编码时声明和使用这些方法。
任何帮助将不胜感激!
答案 0 :(得分:4)
LENS_FOCAL_LENGTH
缩放仅适用于具有光学变焦功能的手机,与野外的Android手机相比,这种手机非常少见。要使用Camera 2 API放大,您应该执行以下操作。
CameraCharacteristics characteristics = mCameraManager
.getCameraCharacteristics(cameraId);
Float maxDigitalZoom = characteristics.get(
CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM);
Rect
,并在预览和拍摄静止图像时使用它。mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, cropRect);
和
mCaptureRequestBuilder = mCameraDevice
.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
mCaptureRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, cropRect);
注意您负责确定和实施缩放控件。对于每个缩放级别,请创建相应的cropRect
,其尺寸不得小于floor(activeArraySize.width / android.scaler.availableMaxDigitalZoom)
和floor(activeArraySize.height / android.scaler.availableMaxDigitalZoom)
。
您可以使用activeArraySize
键检索CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
。
答案 1 :(得分:2)
如果你看一下[android开发者网站的例子] [1]
[1]:http://developer.android.com/samples/Camera2Basic/index.html您将看到在构建CaptureRequest
时需要设置参数:
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE,
CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
您应该对要设置的参数执行相同操作,即
mPreviewRequestBuilder.set(CaptureRequest.LENS_FOCAL_LENGTH, desiredValue);