Как получить изображение с камеры Android без сохранения файла на телефон / SDCard? - PullRequest
3 голосов
/ 11 февраля 2011

Я хотел бы сделать снимок с помощью камеры Android, но поскольку изображение может содержать конфиденциальные данные, я не хочу, чтобы изображение сохранялось на телефоне или SD-карте. Вместо этого я бы хотел строку base64 (сжатую), которая будет немедленно отправлена ​​на сервер

В PhoneGap кажется, что файлы автоматически сохраняются в разных местах. Изначально мне никогда не удавалось получить поток изображения - в onJpegPictureTaken () параметр byte [] всегда был нулевым.

Может кто-нибудь предложить способ?

1 Ответ

1 голос
/ 11 февраля 2011

См. Camera.onPreviewFrame () и YuvImage.compresstoJpeg (), чтобы получить байтовый массив, который можно преобразовать в растровое изображение.

Обратите внимание, что YuvImage.compressToJpeg () доступен только в SDK 8или позже, я думаю.Для более ранних версий вам нужно будет реализовать свой собственный YUV-декодер.Есть несколько примеров или, я мог бы предоставить вам пример.

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

Удачи!

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