我有一个 UIImage,正在加载到我的应用程序的视图之一中。这是一个 10.7 MB 的图像,但是当它加载到应用程序中时,应用程序的资源使用量突然增加了 50 MB。为什么要这样做?使用的内存不应该仅增加约 10.7MB 吗?我确信加载图像是导致内存使用量激增的原因,因为我尝试注释掉这些行,内存使用量回到了 8 MB 左右。这是我加载图像的方法:
UIImage *image = [UIImage imageNamed:@"background.jpg"];
self.backgroundImageView = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:self.backgroundImageView];
如果没有办法减少该图像使用的内存,有没有办法在我想要的时候强制它释放?我正在使用ARC。
不,不应该是 10.7MB。 10.7MB 是图像的压缩大小。
图像加载到UIImage
对象是解码后的图像。
对于图像中的每个像素,使用 4 个字节(R、G、B 和 Alpha),因此您可以计算内存大小,高度 x 宽度 x 4 = 内存中的总字节数。
因此,当您将图像加载到内存中时,它将占用大量内存,并且由于UIImageView
用于呈现图像并作为子视图将图像保存在内存中。
您应该尝试更改图像的大小以匹配 iOS 屏幕尺寸。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)