从相机预览中捕获图像

时间:2011-01-11 01:31:49

标签: android camera capture preview

我想知道是否可以从相机预览中保存图像,可能每2-3秒一张图像。你能给我的任何例子吗?

我发现这是一个可能的解决方案,我知道如何从字节数组保存图像,但我如何继续保存每个第N帧?我正在考虑存储系统正常运行时间并在每个帧中检查它,但它似乎有点蹩脚。有没有更好的办法?有没有办法可以获得预览帧率等信息?

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

TNX。

2 个答案:

答案 0 :(得分:2)

我已经能够使用YUV420-to-RGB提供的Runnable算法将预览流中的图像转换为可用格式。在我的应用程序中,为了分析颜色,我每隔2-3秒也会这样做。

您可以编写适当的Handler.postDelayed()并使用Message(请参阅here)进行链接调用以获得适当的时间间隔。您也可以将Handler.sendMessageDelayed()Handler.handleMessage()与覆盖{{1}}结合使用以获得相同的效果。

关键思想是包含代码以在代码中发送(延迟)另一条相同的消息来处理该消息。这可以实现连续捕获。当您最终决定停止申请时,请小心清除消息管道!

答案 1 :(得分:1)

您可以使用CountDownTimer。您必须覆盖onPreviewFrame。在那里你打电话给YUV420。在CountDownTimer中,您可以每5秒调用一次自己的屏幕截图方法。或者您使用ArrayList<Bitmap>并添加onPreviewFrame中的位图。捕获屏幕截图后,您可以保存所有位图....