【问题标题】:Capture an image from the camera preview从相机预览中捕获图像
【发布时间】:2012-08-27 08:37:06
【问题描述】:

我想知道是否可以从相机预览中保存图像,可能每 2-3 秒保存 1 张图像。有什么例子可以给我吗?

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

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

tnx.

【问题讨论】:

标签: android camera capture preview


【解决方案1】:

我已经能够使用here 提供的YUV420-to-RGB 算法将图像从预览流转换为可用格式。在我的应用程序中,为了分析颜色,我也每 2-3 秒执行一次。

您可以编写适当的Runnable 并使用Handler.postDelayed()(请参阅docs)链接调用适当的时间间隔。您还可以将MessageHandler.sendMessageDelayed() 与覆盖Handler.handleMessage() 结合使用以获得相同的效果。

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

【讨论】:

  • 我也在我的应用程序中实现了这个功能。但在相机预览模式下,我只能捕捉 1 帧。我想在预览模式下每 5 秒捕获一次帧。如何实现这一目标的任何样本?谢谢。你摇滚!
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    相关资源
    最近更新 更多