2011-01-11 12 views
0

ich frage mich, ob es möglich ist, Bilder aus der Kamera Vorschau zu speichern, vielleicht 1 Bild alle 2-3 Sekunden. irgendwelche Beispiele, die du mir geben kannst?Capture ein Bild aus der Kamera Vorschau

Ich habe dies als eine mögliche Lösung gefunden, und ich weiß, wie Sie das Bild aus Byte-Array speichern, aber wie gehe ich mit dem Speichern jedes N-ten Frame fort? Ich dachte daran, die System-Uptime zu speichern und in jedem Frame zu überprüfen, aber es scheint irgendwie lahm. Gibt es einen besseren Weg? Gibt es eine Möglichkeit, Informationen wie Vorschaubildrate zu erhalten?

Android: How to save a preview frame as jpeg image?

tnx.

+0

http://www.anddev.org/advanced-tutorials-f21/image-capture-and-save-in-android-1-5 -t7895.html Dies ist der Link kann Ihnen helfen –

Antwort

2

Ich konnte Bilder aus dem Vorschau-Stream in ein verwendbares Format mit dem herehere vorgestellten Algorithmus konvertieren. In meiner Anwendung mache ich das auch alle 2-3 Sekunden, um die Farbe zu analysieren.

Sie können eine entsprechende Runnable schreiben und Handler.postDelayed() (siehe docs) verwenden, um das entsprechende Intervall zu verketten. Sie können auch Message und Handler.sendMessageDelayed() in Verbindung mit dem Überschreiben Handler.handleMessage() für den gleichen Effekt verwenden.

Die Schlüsselidee besteht darin, Code einzuschließen, um eine andere identische Nachricht im Code zu senden (zu verzögern), um diese Nachricht zu verarbeiten. Dies ermöglicht eine kontinuierliche Erfassung. Achten Sie darauf, die Nachrichtenpipeline zu löschen, wenn Sie schließlich entscheiden, Ihre Anwendung zu stoppen!

+0

Ich implementiere diese Funktion auch in meiner Anwendung. Aber ich kann nur 1 Bild im Vorschaumodus aufnehmen. Ich möchte im Vorschaumodus alle 5 Sekunden einen Frame aufnehmen. Irgendeine Probe, wie man das erreicht? Vielen Dank. Du rockst ! – user1237183

1

Sie können eine CountDownTimer verwenden. Sie müssen die onPreviewFrame überschreiben. Dort rufst du die YUV420 an. In Ihrer CountDownTimer können Sie Ihre eigene Screenshot-Methode alle 5 Sekunden aufrufen. oder Sie verwenden eine ArrayList<Bitmap> und fügen Sie Ihre Bitmaps aus der onPreviewFrame. Und nach der Erfassung der Screenshots können Sie alle Bitmaps speichern ....

Verwandte Themen