ios - 在 ImageView 上加载图像时内存增加?

标签 ios swift image uiimageview

我正在 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. 当图像大小仅为 1.5 Mb 时,为什么内存大小会增加到 30 MB?
  2. 如果来自服务器的图像很大但应用程序中的内存不应增加,我该如何处理。 ?

最佳答案

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

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

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

关于ios - 在 ImageView 上加载图像时内存增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222784/

相关文章:

Safari 在页脚上的图标具有意外的垂直平铺,应显示在一行中

ios - Facebook SDK for iOS 使用开放图谱 API 贴在墙上

ios - 页面加载时滚动后如何访问 UICollectionView 中的特定单元格?

ios - 使用 Parse 作为后端在 Xcode 6 中使用 Swift 创建注册

ios - RxSwift+Moya+Moya_ObjectMapper+MJRefresh,刷新失败?

java - 如何将图像放入 GoogleMaps api fragment 中

iphone - iOS 应用程序 : lag issue when display a huge amount of small images

ios - 用于测试对象类型的通用 Swift 函数

ios - 如何订阅更改图像

html - 如何将一张图片固定到背景图片(响应式)?