(iPhone)UIImage占用了多少内存?

时间:2011-01-07 05:51:46

标签: iphone memory uiimage

我遇到UIImage内存大小问题。

  1. 当您有320 * 320分辨率的图像数据(png)时,将图像加载到内存时,
    使用[UIImage imageWithData:],生成的UIImage将占用320 * 320 * 4?

  2. 屏幕尺寸(分辨率)会影响图像的内存使用吗?

  3. 下面的代码会占用myImage的两倍内存大小还是只占用一个图像内存大小? (320 * 320 * 4)* 2 vs(320 * 320 * 4)?或其他什么?

    UIImage* myImage = [UIImage imageWithData:];    
    myImage = [myImage scaleToSize:];
    

    当scaleToSize定义为

    - (UIImage*)scaleToSize:(CGSize)size
    {
      // Create a bitmap graphics context                                                                                              
    
    
      // This will also set it as the current context                                                                                                                                                                                                                             
      UIGraphicsBeginImageContext(size);
    
      // Draw the scaled image in the current context                                                                                                                                                                                                                             
      [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
    
      // Create a new image from current context                                                                                                                                                                                                                                  
      UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    
      // Pop the current context from the stack                                                                                                                                                                                                                                   
      UIGraphicsEndImageContext();
    
      // Return our new scaled image                                                                                                                                                                                                                                              
      return scaledImage;
    }
    

2 个答案:

答案 0 :(得分:2)

检查内存分配

如果要测试特定图像,请在使用Instruments时在iPhone / Simulator中运行应用程序。

Run with the Allocations profile

确保选择合适的目标。运行程序时,您将看到特定分配占用的内存空间。


在跑步时

您将看到窗口中分配的对象。就像这个,我附上了iTunes。

While running

答案 1 :(得分:0)

显然,图像越大,您将使用的内存越多,一次加载到内存中的图像数量也是如此。