Camera2 api 将相机切换为普通和黑白

Camera2 api switch camera to normal and b&white

我是 camera2 的新手 api 来开发这个模块,我有用 c 编码的 jni 文件,并且正在开发普通到黑白相机。切换到黑白时相机是这样的有人在camera2中这样做过吗api?

好的!所以你要找的是改变你相机的模式

为了实现这个你可以使用Camera.Parameters,你可以使用颜色效果中的EFFECT_MONO(单色)来获得黑白图像...

要使相机参数生效,应用程序必须调用Camera#setParameters(Camera.Parameters)。 例如,在调用 Camera.Parameters#setWhiteBalance 之后,直到使用更改后的参数对象调用 Camera#setParameters(Camera.Parameters) 时,白平衡才真正发生变化。以下是供您参考的示例代码

mCameraDevPara.setColorEffect(android.hardware.Camera.Parameters.EFFECT_MONO);
mCameraDev.setParameters(mCameraDevPara);

对于 camera2api 这些你可以通过 CaptureRequest 实现,它有方法 CONTROL_EFFECT_MODE 可以应用特殊的颜色效果。

When this mode is set, a color effect will be applied to images produced by the camera device. The interpretation and implementation of these color effects is left to the implementor of the camera device, and should not be depended on to be consistent (or present) across all devices.

更多参考 GO here.

提示: 不同的设备可能具有不同的相机功能,例如图片尺寸或闪光灯模式。应用程序应在设置参数之前查询相机功能。 例如,应用程序应调用

Camera.Parameters#getSupportedColorEffects()

在调用

之前

Camera.Parameters#setColorEffect(String)

。 如果相机不支持色彩效果,

Camera.Parameters#getSupportedColorEffects()

将return无效。