Dart / Flutter - 持久化大量图像文件的正确方法

问题描述 投票:2回答:2

我即将开始研究类似百科全书的应用程序,我希望我的对象Item包含主要图像以及用于图库目的的其他图像列表。

我已经做了一些关于如何在Flutter中存储图像的研究,但我很困惑 - 一些已回答的问题包括:

  1. 资产 - 但访问它们,过滤,搜索等等都不容易
  2. SQLite(Base64编码/解码) - 在加载和解码/编码图像对象列表期间的性能问题
  3. 将文件保存在磁盘上 - 加载时间更长

所以问题是 - 在这种情况下最好的方法是什么?

任何提示/提示非常感谢! :)

sqlite dart flutter
2个回答
0
投票
  1. 如果您使用应用程序静态发送它们,资产将运行良好。过滤,搜索等不应该太难。
  2. 是的,所有内容都将存储在单个文件中,但会产生一些开销,这会导致一些性能问题。
  3. “以各种方式将文件保存在磁盘上”可将文件保存在磁盘上,加载时间无法避免。您可以在后台加载图像,以便在用户导航到应显示它们的视图时将它们保存在内存中。

如果它们是静态的,我会将它们存储为资产(在应用程序发布后不要更改,或者仅在应用程序更新时更改)

您可以使用SQLite并维护一个包含有关图像元信息的表和一个包含图像文件名的字段(如果需要,还可以使用路径),以便从SQL数据库的查询功能和最佳性能中受益。

有关详细信息,则需要更多信息。


0
投票

尝试这种方法获得更多图像

import 'dart:convert';

import 'dart:typed_data';



Uint8List bytesImage1;

bool bolWithImage1 = false;

try {

  bytesImage1 =

      base64Decode(base64StringFromSql);

  bolWithImage1 = true;

} catch (err) {}
© www.soinside.com 2019 - 2024. All rights reserved.