2016-01-16 51 views
-1

考慮:UIImage的緩存導致內存高

+(nullable UIImage *)imageNamed:(NSString *)name; 

我用如下這種方法:

UIImage *image = [UIImage imageNamed:@"test"]; 

但我的形象的類型是png。

enter image description here

在我的項目,將許多不同的圖像。

所以,我的緩存是很HIGHT

enter image description here

+1

當您使用3001 x 4057圖像時,原始文件大小是什麼並不重要,它將解壓縮它,通常每個像素需要四個字節。使用尺寸適合目標設備的圖像,但不能更大。 – Rob

回答

2

你的圖片是巨大的。 3001 * 4057約爲1200萬像素。 Theres 3個字節在一個像素中(每個字節爲紅色,綠色和藍色),因此具有該大小的圖像將有1200萬* 3個字節,每個圖像大約爲36MB。

如果可以,我會縮小圖像大小。

+4

實際上,這通常是每個像素四個字節,分別用於紅色,綠色,藍色和alpha,因此更糟糕。 – Rob

+0

非常感謝。所以,原因是我的形象像素。我明白了 –