首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据库图像存储与检索中的内存问题

数据库图像存储与检索中的内存问题
EN

Stack Overflow用户
提问于 2016-10-16 15:09:59
回答 2查看 74关注 0票数 2

我正在开发应用程序,其中包括本地SQLite数据库,在其中存储和检索图像,并将其显示到应用程序中。

现在,我的问题是,我正在目录中存储大量图像,并将其路径存储到数据库中。因此,当我从数据库中检索该路径并将映像加载到应用程序时,每个映像的内存将增加10到20 Mb。

我也试图将图像数据存储到数据库中,但同样的问题是,每个图像的内存会增加10-20Mb。

拜托,我该怎么处理这个记忆问题?帮我一把

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-16 17:14:03

在应用程序中使用图像时,可能需要的内存比持久存储中资产的大小要大得多。资产经常被压缩(例如JPG或PNG),但是当您使用图像时,它们被解压缩,通常每个像素需要4个字节(红色、绿色、蓝色和alpha分别为一个字节)。因此,例如,iPhone 7+全屏视网膜图像在使用该图像时可能需要14 So。因此,内存高效的技术是使用延迟加载,直到您完全需要时才创建UIImage对象。而且,正如曾傑瑞所建议的那样,由于内存的大小取决于图像的大小,而不是使用图像的图像视图,如果图像的尺寸大于所使用的UIImageView所要求的尺寸(即图像视图的宽度和高度乘以设备的“比例”),则可能需要相应地调整图像的大小。

票数 1
EN

Stack Overflow用户

发布于 2016-10-16 16:27:10

可能是这样的,您试图显示的图像比屏幕上需要显示的图像要大得多。尝试将图像加载到内存中,创建一个具有所需大小的版本,然后使用该版本。当然,您可以实现一些缓存,这样您就不必一直调整相同的图像大小。但是当原始图像超出范围时,它的内存就会被释放。如果您总是需要相同大小的图像,请尝试在将它们存储到数据库中之前调整它们的大小,但是如果您希望支持多个大小(可能是针对不同的设备),那么将图像存储到您需要的最大大小,并为其他图像调整大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40071814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档