在图像视图上加载图像时内存增加?

时间:2018-01-12 09:05:49

标签: ios swift image uiimageview

我在图像视图中从url加载图像。如果图像的分辨率为4000 * 2400,则图像尺寸为1.6MB,然后加载图像时。仅为图像加载,内存增加到30MB。但如果大小小于10 KB,则大小不会增加。我知道我必须使用小图像作为拇指图像加载,但只是为了学习我想知道这一点。

我使用下面的代码加载图片

self.imgStore.kf.setImage(with: url, placeholder: #imageLiteral(resourceName: "placeholder"), options: nil, progressBlock: { (val, val1) in        }) { (image, error, cache, url) in
    DILog.print(items: "image recived")
}
  1. 当图像大小仅为1.5 Mb时,为什么内存大小会增加到30 MB?
  2. 如果来自服务器的图像很大但应用程序中的内存不应该增加,我该如何处理。 ?

1 个答案:

答案 0 :(得分:1)

1.5MB是压缩大小。 PNG在内存中解压缩,它以像素为基础消耗内存(RGBA)。因此,大小将为4000 * 2400 * 4 ~= 38MB

如果您的图片太大而无法更改分辨率。

  1. 下载图像并直接保存在磁盘上。
  2. 在将图像加载到内存之前调整图像大小。 See this了解更多信息。