美文网首页程序员
UIImage 占用内存大小

UIImage 占用内存大小

作者: Yang152412 | 来源:发表于2016-02-18 11:55 被阅读2332次

1、查看 AFNetworking 代码,里面的估算方法是

CGSize imageSize = CGSizeMake(image.size.width * image.scale, image.size.height * image.scale);
    CGFloat bytesPerPixel = 4.0;
    CGFloat bytesPerRow = imageSize.width * bytesPerPixel; // 2560
    CGFloat totalBytes = (UInt64)bytesPerPixel * (UInt64)bytesPerRow;
    NSLog(@"s1:%lu",(unsigned long)totalBytes); // 输出 10240

2、查看 CGImage 类,发现下面的方法:CGImageGetHeight和CGImageGetBytesPerRow。这样计算应该更准确

CGFloat cgImageBytesPerRow = CGImageGetBytesPerRow(image.CGImage); // 2560
    CGFloat cgImageHeight = CGImageGetHeight(image.CGImage); // 1137
    NSUInteger size  = cgImageHeight * cgImageBytesPerRow;
    NSLog(@"size:%lu",(unsigned long)size); // 输出 2910720

使用 Instruments 查看内存使用情况:


instrument.png

和输出保持一致。

3、搜索 stack overflow ,参考这里

NSUInteger s1 = UIImagePNGRepresentation(thumbImage).length;
NSUInteger s2 = UIImageJPEGRepresentation(thumbImage, 1).length;
NSUInteger s3  = CGImageGetHeight(thumbImage.CGImage) * CGImageGetBytesPerRow(thumbImage.CGImage);
NSLog(@"s1:%u",s1); // s1 is the size of a .png image when saved to a file
NSLog(@"s2:%u",s2); // s2 is the size of a .jpg image when save to a file with best quality
NSLog(@"s3:%u",s3); // correct

相关文章

  • UIImage 占用内存大小

    1、查看 AFNetworking 代码,里面的估算方法是 2、查看 CGImage 类,发现下面的方法:CGIm...

  • 如何得到UIImage的大小(KB)

    iOS 计算UIImage的占用内存大小: 注意: lenth/1000,不是1024,是1000!因为Mac和i...

  • Pandas读取文件的效率-CSV VS Pickle

    读取csv文件 查看文件大小 查看本地文件大小 查看占用内存大小 查看每一列占用内存大小 object 类型占用内...

  • 如何计算Java对象所占内存的大小

    摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论...

  • 如何计算Java对象所占内存的大小

    摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论...

  • 图片内存大小计算

    图片内存大小和图片文件占用空间大小是没有必然关系,但是一般来说图片文件大小,图片内存大小就越大。占用空间是在磁盘上...

  • C语言-3、堆栈、野指针、悬空指针、动态开辟

    栈区:占用内存大小 最大值: 大概 2M 大于2M会栈溢出 跟平台有关系 堆区:占用内存大小 最大值: 大概8...

  • NSObject 占用内存大小

    我们平时编写的Objective-C代码本质上其实都是通过底层的C\C++代码的实现的,而C\C++代码会转变成汇...

  • NSObject占用内存大小

    内存对齐:我们知道OC对象就是C++结构体,而结构体的大小必须是最大成员大小的倍数,当在多了一个height以后,...

  • UIimage 内存占用问题

    我们平时可能在写代码的时候,并没有在意UIimage对内存的占用问题。最近我在做项目的时候,需要对多个图片进行压缩...

网友评论

    本文标题:UIImage 占用内存大小

    本文链接:https://www.haomeiwen.com/subject/skmmkttx.html