如何在Camera X支持库中设置曝光补偿?

问题描述 投票:1回答:1

我正在使用CameraX库单击照片,并想要更改曝光设置。如何设置曝光补偿或更改拍摄照片的曝光设置?

// Set up the capture use case to allow users to take photos
val imageCaptureConfig = ImageCaptureConfig.Builder().apply {
    setLensFacing(lensFacing)
    setCaptureMode(CaptureMode.MIN_LATENCY)
    // We request aspect ratio but no resolution to match preview config but letting
    // CameraX optimize for whatever specific resolution best fits requested capture mode
    setTargetAspectRatio(screenAspectRatio)
    // Set initial target rotation, we will have to call this again if rotation changes
    // during the lifecycle of this use case
    setTargetRotation(viewFinder.display.rotation)
}.build()


imageCapture = ImageCapture(imageCaptureConfig)

// Setup image analysis pipeline that computes average pixel luminance in real time
val analyzerConfig = ImageAnalysisConfig.Builder().apply {
    setLensFacing(lensFacing)
    // Use a worker thread for image analysis to prevent preview glitches
    setCallbackHandler(Handler(analyzerThread.looper))
    // In our analysis, we care more about the latest image than analyzing *every* image
    setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE)
    // Set initial target rotation, we will have to call this again if rotation changes
    // during the lifecycle of this use case
    setTargetRotation(viewFinder.display.rotation)
}.build()
android kotlin camera android-camera2 android-camerax
1个回答
0
投票
val imageCaptureConfigBuilder = ImageCaptureConfig.Builder().apply {
    setLensFacing(lensFacing)
    setCaptureMode(CaptureMode.MIN_LATENCY)
    // We request aspect ratio but no resolution to match preview config but letting
    // CameraX optimize for whatever specific resolution best fits requested capture mode
    setTargetAspectRatio(screenAspectRatio)
    // Set initial target rotation, we will have to call this again if rotation changes
    // during the lifecycle of this use case
    setTargetRotation(viewFinder.display.rotation)
}

Camera2Config.Extender(imageCaptureConfigBuilder).setCaptureRequestOption(
  CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, exposure)

imageCapture = ImageCapture(imageCaptureConfigBuilder.build())

其中exposure是您想要的值

理想情况下,您应该查询CONTROL_AE_COMPENSATION_RANGE以设置exposure的有效值。

© www.soinside.com 2019 - 2024. All rights reserved.