【问题标题】:memory size of UIImageViewUIImageView 的内存大小
【发布时间】:2011-11-24 01:43:24
【问题描述】:

我想知道UIImageView 对象的内存大小,因为我需要显示一些大图像并且我需要处理内存。我想这是由图像属性决定的。但是我不确定如何计算精算内存大小,下面是我编写的测试代码:


    //1.jpg has a size of 4016X2657 and 2.1MB
    NSData *imageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"1" ofType:@"jpg"]];
    NSLog(@"imageData:%d",[imageData length]);

控制台显示:


 imageData:2070461

这正好是 2.1MB 的大小。

但是,在我看来,UIImageView 应该知道显示图像的每个像素,换句话说,它应该具有以下内存: 4016*2657*4/1024/1024 = 40.7+MB 这么大,不知道iOS会不会做一些优化,文档里也找不到相关的。

谁能帮我UIImageView 对象的确切内存大小是多少?

【问题讨论】:

  • @Till,一个uiimageview对象的内存大小。
  • 你实际上是在你的问题中计算出来的——它大约是宽 x 高 x 4
  • 那是照片的原始数据。但是我不确定iOS是否会在UIImage中做一些优化。你知道吗?
  • 它不会优化内存使用(使用压缩),因为这会降低图像质量和/或显示性能。 PowerVR(GL/显示单元)确实支持图像压缩,但只是有损压缩,在大多数情况下看起来很糟糕。
  • 关于您的标记:如果您对自己的问题有自我回答,请将其发布在下方,然后在时间允许时将其标记为已接受。

标签: ios uiimageview memory-management


【解决方案1】:

问题中对此进行了描述。内存是照片的精算大小,UIImage不会做优化。

【讨论】:

    猜你喜欢
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    相关资源
    最近更新 更多