Ошибка CameraX alpha5 в целевом разрешении выходного сигнала YUV? - PullRequest
0 голосов
/ 03 октября 2019
val imageCaptureConfig = ImageCaptureConfig.Builder().apply {
            setLensFacing(CameraX.LensFacing.FRONT)
            setCaptureMode(CaptureMode.MAX_QUALITY)
            setBufferFormat(ImageFormat.YUV_420_888)
            setTargetResolution(Size(3264, 2448))
            // 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(Rational(3,4))
            // 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.takePicture(object : ImageCapture.OnImageCapturedListener() {
             override fun onCaptureSuccess(image: ImageProxy?, rotationDegrees: Int) {
                        println("captureSuccess h: ${image?.height} w: ${image?.width}")
                    }
             override fun onError(imageCaptureError: ImageCapture.ImageCaptureError, message: String, cause: Throwable?) {
                        println(message)
             }
          })

Выше приведен код, который я установил для захвата изображения из версии Samsung S8 для США. Я хочу иметь формат YUV с максимальным выходным разрешением 3264 * 2448. Тем не менее, вместо этого я получил результат 1440 * 1080. Я пробовал на S9 и азиатской версии S8, код отлично работает на обоих телефонах. Странно, когда я устанавливаю формат JPEG, он будет работать на этом телефоне.

, и я попробовал также S7 и пиксель 2, пиксель 2 может выводить YUV с максимальным поддерживаемым разрешением (не код выше), но S7 не может, также дает мне 1080 * 1440 вместо этого.

Это ошибка CameraX? Если да, то есть ли какое-нибудь решение кроме использования обратно в Camera2?

Спасибо!

1 Ответ

0 голосов
/ 04 октября 2019

У меня нет конкретных устройств, чтобы это проверить, но нередко камера может производить лучшее разрешение JPEG, чем YUV. С другой стороны, см. этот ответ на связанный вопрос.

...