Как передать PNG из класса Java в класс Native в Android с помощью Opencv - PullRequest
0 голосов
/ 18 мая 2019

Я хочу передать файл изображения в формате PNG в собственный класс для выполнения альфа-смешивания с использованием OpenCV. Для этого мне нужны все 4 канала PNG. Файл изображения, который я хочу передать, находится в моей папке ресурсов. Я хотел бы знать, как лучше всего передать его родному классу? Спасибо.

Я использую с Android Studio 3.3.2 и OpenCV4Android 4.1.0

1 Ответ

1 голос
/ 24 мая 2019

Вы всегда можете сериализовать изображение в байты и передать его в код JNI. Там, внутри JNI, вы можете десериализовать его.

http://jnicookbook.owsiak.org/recipe-No-007/

Вы также можете передавать объект и извлекать его поля внутри JNI. Но это потребует некоторых настроек на стороне JNI

http://jnicookbook.owsiak.org/recipe-No-020/

В любом случае, в какой-то момент вам придется получить доступ к данным из Java и преобразовать их в формат C / C ++ (например, структуры, используемые OpenCV).

Если у вас есть доступ к файлу, вы также можете передать местоположение файла (String) и прочитать файл в коде C / C ++

http://jnicookbook.owsiak.org/recipe-No-009/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...