【问题标题】:Simulating Camera with JPEGs in Android在 Android 中使用 JPEG 模拟相机
【发布时间】:2012-08-04 05:38:40
【问题描述】:

我有一个应用程序,我们希望用户能够使用手机上的相机运行它(并将相机字节输入我们的库),或者使用 jpeg 序列并输入这些图像。我们计划发布一些不同的图像序列,它们将被打包到设备上的资产文件夹中。我们的 API 支持将图像加载为文件路径或图像的实际字节。

输入 jpeg 图像的最佳方法是什么?

在我看来,我有两个选择:

  1. 直接从 AssetManager 中加载 jpeg 的字节,并将它们作为字节传递给我的 API。这意味着我不断地提取 AssetManager 的每个文件的字节。 (我打算对这样做的成本进行一些分析,但也许有人已经知道成本太高了。)
  2. 将所有图像复制到缓存文件夹中,然后按文件名加载它们。在我看来,在性能方面,这种方法更好,但它需要更多的前期开销,并且显然会占用用户设备上的更多空间。 (目前我们有一个限制,每个图像序列将少于 30 秒,因此 30fps*30seconds = 900 张图像。)

感谢您的帮助。

【问题讨论】:

  • 我认为以 KiB 为单位提及每张图像的 JPEG 图像大小以及您期望的总数是明智的。
  • 我现在磁盘上的一个样本,每个 JPEG 大约 40KB,虽然这个特定序列只有 160 个图像。最终的实际大小将取决于我们可以支持的最高分辨率图像,这将为我们在应用程序中提供足够的性能吞吐量。我们正在做的事情是 CPU 密集型的,图像分辨率越高,CPU 成本就越高。我们现在可能最终会使用相当低分辨率的图像(大约 160x240),但我不想在这里限制自己。限制需要是 CPU 而不是内存。

标签: android caching storage diskspace android-assets


【解决方案1】:

最终使用方法#2,最后似乎没问题。

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 2013-01-06
    • 2013-09-05
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多