Сделайте снимок и получите байты без сохранения на диске

Можно ли сделать снимок и получить изображение в виде байтового массива, не сохраняя его?

Все, что я хочу, это сделать фотографию в памяти. Я не хочу сохранять это. Также я планирую использовать другие действия камеры, чтобы сделать снимок (я имею в виду, я не хочу реализовывать свою собственную логику камеры)

Обратите внимание, я знаю, что могу сделать снимок, прочитать байты и удалить его. Но я смотрю, смогу ли я избежать этого сохранения и удаления части, вместо этого непосредственно получить изображение в байтовом массиве в памяти.

1 ответ

Можно ли сделать снимок и получить изображение в виде байтового массива, не сохраняя его?

Это поведение android.hardware.Camera API, android.hardware.camera2 API и сторонние библиотеки, которые упрощают эти API (например, Fotoapparat, CameraKit-Android).

я планирую использовать другие действия камеры, чтобы сделать снимок

Если под "другой активностью камеры" вы подразумеваете стороннее приложение для камеры (например, через ACTION_IMAGE_CAPTURE), это будет сложно и ненадежно. В лучшем случае вы можете попробовать использовать contentUri указывая на ContentProvider что вы пишете, что держит только записанные потоки в памяти. Я ожидаю, что у вас кончится куча места. Кроме того, не все приложения камеры будут поддерживать contentUri за EXTRA_OUTPUT (хотя они должны).

Другие вопросы по тегам