【问题标题】:How to capture/get camera White Balance value using camera2 API or CameraX library while camera is open and before image capturing如何在相机打开和图像捕获之前使用 camera2 API 或 CameraX 库捕获/获取相机白平衡值
【发布时间】:2021-03-25 09:39:00
【问题描述】:

我想在用户打开相机时在运行时获取白平衡值。如果当前白平衡值不在某个指定范围内,我想向用户显示一些消息。

【问题讨论】:

  • 你做到了吗?
  • 还没有找到任何解决方案
  • 我已经研究过它并且它工作正常,让我分享我的答案。

标签: android android-camera2 android-camerax


【解决方案1】:

创建一个CameraCaptureSession.CaptureCallback回调并实现其功能

private val captureCallbackListener: CameraCaptureSession.CaptureCallback =
    object : CameraCaptureSession.CaptureCallback() {
        override fun onCaptureStarted(..){}
        override fun onCaptureProgressed(..){}
        override fun onCaptureCompleted(
            session: CameraCaptureSession,
            request: CaptureRequest,
            result: TotalCaptureResult
        ) {
                Log.d(TAG, "onCaptureCompleted White Balance: ${result.get(CaptureResult.COLOR_CORRECTION_MODE)} and ${result.get(CaptureResult.COLOR_CORRECTION_GAINS)} and ${result.get(CaptureResult.COLOR_CORRECTION_TRANSFORM)}")

          }

}

以上这些日志将为您提供与白平衡相关的所有信息。 在 cameraCaptureSessions 中创建相机预览时传递此回调!!.setRepeatingRequest as

 cameraCaptureSessions!!.setRepeatingRequest(
        captureRequestBuilder!!.build(),
        captureCallbackListener,
        mBackgroundHandler
    )

【讨论】:

    猜你喜欢
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多