我正在 ImageView 上从 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.5 Mb 时,为什么内存大小会增加到 30 MB?
- 如果来自服务器的图像很大但应用程序中的内存不应增加,我该如何处理。 ?
最佳答案
1.5MB 是压缩大小。 PNG 在内存中解压缩,它以像素为基础 (RGBA) 消耗内存。所以大小将为 4000 * 2400 * 4 ~= 38MB
如果您的图片太大而无法更改分辨率。
- 下载图像并直接保存在磁盘上。
- 在将图像加载到内存之前调整图像大小。 See this获取更多信息。
关于ios - 在 ImageView 上加载图像时内存增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222784/