Я пишу приложение для устройства Android, в котором я хочу обработать изображение с камеры.
Камера на этом устройстве поддерживает только форматы NV21 и PRIVATE. Я проверил с помощью CameraCharacteristics и попробовал различные форматы, такие как YUV_420_888, только для сбоя приложения. Поддержка HW камеры: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
Чтобы создать CameraCaptureSession, мне нужно создать ImageReader. Для создания ImageReader мне нужно выбрать ImageFormat, в этом случае работает только PRIVATE. Если я пробую NV21, я получаю сообщение о том, что оно не поддерживается.
Мой onImageAvailableListener срабатывает, но поскольку ImageFormat имеет значение PRIVATE, атрибут «плоскости» в изображении возвращает значение NULL.
В соответствии к документации, можно получить доступ к данным через HardwareBuffer.
Начиная с Android Доступ к частным изображениям P также можно получить через их аппаратные буферы (если они доступны) через метод Image # getHardwareBuffer (). Попытка получить доступ к плоскостям частного изображения вернет пустой массив.
Я получаю объект типа HardwareBuffer, когда получаю изображение из acquLatestImage, но у меня такой вопрос: Как получить фактические данные / байты, представляющие пиксели, из объекта HardwareBuffer?