使用Camera2 API的CaptureRequest.Builder的setToneMapMode方法来设置伽马值,该方法允许使用PRESET_CURVE来实现对伽马曲线的完全控制。代码示例如下:
// 获取用于配置摄像头的CaptureRequest.Builder CaptureRequest.Builder builder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
// 设置使用伽马预设曲线 builder.set(TonemapCurve.TONEMAP_MODE, TonemapCurve.TONEMAP_MODE_CONTRAST_CURVE);
// 自定义伽马曲线 float[] red = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f }; float[] green = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f }; float[] blue = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f }; TonemapCurve toneMapCurve = new TonemapCurve(red, green, blue); builder.set(CaptureRequest.TONEMAP_CURVE, toneMapCurve);