Захват изображения с камеры предварительного просмотра - PullRequest
0 голосов
/ 11 января 2011

Мне было интересно, возможно ли сохранить изображения из предварительного просмотра камеры, возможно, 1 изображение каждые 2-3 секунды. какие примеры ты можешь мне дать?

Я нашел это как возможное решение, и я знаю, как сохранить изображение из байтового массива, но как мне продолжить сохранение каждого N-го кадра? Я думал о том, чтобы сохранить работоспособность системы и проверять ее в каждом кадре, но это выглядит как-то неубедительно. Есть ли способ лучше? Можно ли получить такую ​​информацию, как частота кадров для предварительного просмотра?

Android: как сохранить рамку предварительного просмотра в виде изображения в формате JPEG?

Тпй.

Ответы [ 2 ]

2 голосов
/ 11 января 2011

Мне удалось преобразовать изображения из потока предварительного просмотра в пригодный для использования формат, используя алгоритм YUV420-to-RGB, представленный здесь . В моем приложении я также делаю это каждые 2-3 секунды для анализа цвета.

Вы можете написать соответствующий Runnable и использовать Handler.postDelayed() (см. docs ) для цепочки вызовов для соответствующего интервала. Вы также можете использовать Message и Handler.sendMessageDelayed() в сочетании с переопределением Handler.handleMessage() для того же эффекта.

Ключевой идеей является включение кода для отправки (отложенного) другого идентичного сообщения в код для обработки этого сообщения. Это позволяет непрерывный захват. Будьте осторожны, чтобы очистить конвейер сообщений, когда в конечном итоге решите остановить приложение!

1 голос
/ 26 августа 2012

Вы можете использовать CountDownTimer.Вы должны переопределить onPreviewFrame.Там вы звоните YUV420.В вашем CountDownTimer вы можете вызывать свой собственный метод скриншота каждые 5 секунд.или вы используете ArrayList<Bitmap> и добавляете свои растровые изображения из onPreviewFrame.А после захвата скриншотов вы можете сохранить все растровые изображения ....

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