Sqlite 省道/颤振-保存大量图像文件的正确方法
我即将开始开发一个类似百科全书的应用程序,我希望我的对象Sqlite 省道/颤振-保存大量图像文件的正确方法,sqlite,dart,flutter,Sqlite,Dart,Flutter,我即将开始开发一个类似百科全书的应用程序,我希望我的对象项目包含主图像以及用于画廊目的的其他图像列表 我已经做了一些关于如何在Flitter中存储图像的研究,但我感到困惑-一些回答的问题包括: 资产——但访问、筛选、搜索等都不容易 SQLite(Base64编码/解码)-加载和解码/编码图像对象列表期间的性能问题 将文件保留在磁盘上—加载时间更长 所以问题是,在这种情况下,什么是最好的方法 非常感谢您的任何提示/提示!:) 如果您将它们与应用程序一起静态发布,那么这些资产就可以很好地工作。过滤、
项目包含主图像以及用于画廊目的的其他图像列表
我已经做了一些关于如何在Flitter中存储图像的研究,但我感到困惑-一些回答的问题包括:
资产——但访问、筛选、搜索等都不容易
SQLite(Base64编码/解码)-加载和解码/编码图像对象列表期间的性能问题
将文件保留在磁盘上—加载时间更长
所以问题是,在这种情况下,什么是最好的方法
非常感谢您的任何提示/提示!:)
如果您将它们与应用程序一起静态发布,那么这些资产就可以很好地工作。过滤、搜索等不应该太难
是的,所有内容都将存储在一个文件中,这会导致一些性能问题
“将文件保存在磁盘上”以各种方式将文件保存在磁盘上,加载时间是不可避免的。当用户导航到应该显示图像的视图时,您可能能够在后台加载图像,以便将其存储在内存中
如果它们是静态的,我会将它们存储为资产(在应用程序发布后不要更改,或者仅在应用程序更新时更改)
您可以使用SQLite并维护一个包含有关图像的元信息的表和一个包含图像文件名(以及路径,如果需要)的字段,以受益于SQL数据库的查询功能和最佳性能
有关更多详细信息,需要更多信息。尝试使用此方法获取更多图像
import 'dart:convert';
import 'dart:typed_data';
Uint8List bytesImage1;
bool bolWithImage1 = false;
try {
bytesImage1 =
base64Decode(base64StringFromSql);
bolWithImage1 = true;
} catch (err) {}
感谢你的(另一个)回复-非常感谢你对Dart/Flatter社区的贡献(我最近看到了很多你有用的帖子)!是的,这就是计划-它将是一个离线应用程序,所以没有任何变化。所以我将坚持使用assets/SQLite选项,比如:class Item{}谢谢:)选项,只需将它们作为资产发送即可。如果Dart查询功能足以降低添加数据库的复杂性,您也可以在Dart代码中硬编码元数据,而不是数据库。不,我会将它们存储在映射文字中,如const assets={'asset1':'assest\pic1.jpg***assets\pic2.jpg***assets\pic3.jpg',}
,或者如果您需要更多元数据,然后创建一个可以存储此元数据的类,并使用const-assets={'asset1':AssetMetadata(路径:'assest\pic1.jpg***assets\pic2.jpg***assets\pic3.jpg',size:size(240380),locale:'en',…},
然后可以使用assets.where(…)
获取类似SQL的资产。你说得对-键值将最有效。感谢你的时间和帮助!祝你愉快:)