Захват изображения из предварительного просмотра камеры

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

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

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

Спасибо.


person DArkO    schedule 11.01.2011    source источник
comment
anddev. org/advanced-tutorials-f21/ эта ссылка может вам помочь   -  person Parag Chauhan    schedule 11.01.2011


Ответы (2)


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

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

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

person antonyt    schedule 11.01.2011
comment
Я также реализую эту функцию в своем приложении. Но я могу захватить только 1 кадр в режиме предварительного просмотра камеры. Я хотел бы захватывать кадр каждые 5 секунд в режиме предварительного просмотра. Любой образец того, как этого добиться? Спасибо. Ты рок! - person user1237183; 29.02.2012

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

person AndroidPunk    schedule 26.08.2012