Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在图像视图上加载图像时内存是否增加?_Ios_Swift_Image_Uiimageview - Fatal编程技术网

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

Ios 在图像视图上加载图像时内存是否增加?,ios,swift,image,uiimageview,Ios,Swift,Image,Uiimageview,我正在从图像视图的url加载图像。如果图像的分辨率为4000*2400,则加载图像时图像的大小为1.6MB。内存增加到30MB,仅用于图像加载。但若大小小于10KB,则大小不会增加。我知道我必须使用小图像作为拇指图像加载,但只是为了学习,我想知道这一点 我使用下面的代码来加载图像 self.imgStore.kf.setImage(with: url, placeholder: #imageLiteral(resourceName: "placeholder"), options: nil, p

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

我使用下面的代码来加载图像

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

    如果图像太大,无法更改分辨率

  • 下载映像并直接保存在磁盘上
  • 在将图像加载到内存之前调整图像大小。更多信息
    谢谢你的解释。您能告诉我如何减小图像的大小,使其不会增大吗?方法是将分辨率从
    4000*2400
    降低到应用程序所需的分辨率。或者,如果你不能这样做,请看我编辑过的答案。内存中的图像大小与图像分辨率成正比。