В настоящее время я получаю буфер через ниже < /p>
ImageReader.OnImageAvailableListener { it ->
val image = it.acquireLatestImage()
val yBuffer = image.planes[0].buffer
val yPixelStride = image.planes[0].pixelStride
val yRowStride = image.planes[0].rowStride
val uBuffer = image.planes[1].buffer
val uPixelStride = image.planes[1].pixelStride
val uRowStride = image.planes[1].rowStride
val vBuffer = image.planes[2].buffer
val vPixelStride = image.planes[2].pixelStride
val vRowStride = image.planes[2].rowStride
}
< /code>
Тем не менее, на этом телефоне Ubuffer и V -буфер заменяются на фронтальной камере и заставляют цвет кожи, как показано на изображении. Синяя кожа. Задняя камера идеально хороша, используя один и тот же код. < /P>
Мне нужна помощь, чтобы выяснить, как определить эту проблему, поскольку я должен использовать YUV_420_888 для этого. < /P>
Предлагаемая идея была: < /p>
- . /> Получить необработанный формат того же кадра < /p>
< /li>
Конвертировать необработанную раму в i420, YV12, NV21 и NV12. < /p>
a. Объяснение этих форматов здесь https://github.com/android/camera-sampl ... v.kt#brt12 /> б. https://github.com/gordinmitya/yuv2buf? ... me-ov-file> - Сравните с кадром jpeg и возвращайте любой формат, который соответствует цветным буферам JPEG
Подробнее здесь: https://stackoverflow.com/questions/797 ... amera2-api