`

UIImage 占用内存大小

 
阅读更多

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

 

 https://www.jianshu.com/p/634c022cb560

分享到:
评论

相关推荐

    UIImage+Sprite+Animmation

    通过使用精灵,开发者可以有效地管理大量的小图像,减少内存占用,并提高性能。在iOS上,我们通常将多个精灵图片打包成一个大图(称为精灵表或Atlas),然后通过坐标来引用和显示特定的精灵。 接下来,让我们探讨...

    IOS应用源码——UIImage+Sprite for iOS.rar

    在iOS应用中,精灵是一种常用的图形管理技术,它将多个小图像组合成一个大的图像集,然后通过指定坐标来显示其中的一部分,以此提高性能和降低内存占用。 首先,让我们深入了解一下UIImage类。UIImage不负责绘制...

    swift-Gif动图和apng图片引擎占用内存和CPU要比现有方案更少

    传统的处理方式通常包括使用系统自带的`UIImage`或第三方库,如SDWebImage等,它们在加载和解析GIF时可能会一次性加载所有帧,造成内存瞬间飙升。 其次,APNG是一种扩展PNG标准的格式,它能够包含多个帧,创建类似...

    iOS图片压缩---UIImage+Wechat

    在iOS开发中,图片处理是一项常见且重要的任务,特别是在移动应用中,由于设备存储空间有限,用户对应用的性能和内存占用有较高要求。UIImage+Wechat 是一个专门用于图片压缩的优秀框架,旨在帮助开发者有效地减小...

    ios加载图片内存暴涨解决方法

    此外,可以使用`UIImageJPEGRepresentation`或`UIImagePNGRepresentation`来压缩图片数据,减少内存占用。 2. **苹果官方Demo提供的分片比例裁剪** 苹果提供了一种处理大图的方法,即分片加载。通过计算图片的尺寸...

    几个iphone uiimage resize 的类

    此外,可以使用`UIImageJPEGRepresentation`或`UIImagePNGRepresentation`来压缩图片,减少内存占用。 5. 图片质量与压缩:在调整尺寸时,有时需要权衡图片质量和文件大小。通过调整`...

    IOS源码应用Demo-UIImage+Sprite for iOS.zip

    1. 图片切割:在UIImage的Category中,可能会包含一个方法用于根据指定的坐标和大小从大图中切割出小图。这通常会用到CGImageCreateWithImageInRect函数来创建一个新的CGImage对象,然后通过初始化一个新的UIImage来...

    UIImage加载图片Images.xcassets加载方法的影响

    这种方式适用于大图或者不常使用的图片,避免了不必要的内存占用,但加载速度相对较慢。 现在我们转向Images.xcassets。这是Xcode中的一个资源集合,用于管理应用内的各种图片资源。在编译后,Images.xcassets中的...

    iOS游戏应用源代码——r3econ-UIImage-Sprite-Additions-0738b37.zip

    源代码可能包括了内存管理和缓存策略,以减少内存占用和提高渲染速度。 4. **坐标系统和变换**:为了实现精灵的移动、旋转和缩放,源码可能包含了关于iOS坐标系统的理解,以及CGAffineTransform或CATransform3D的...

    IOS 调整内存中的图片大小实例详解

    2000*2000的内存占用是2000*2000*4bit 以下两个函数可以用来创建一个新的按照固定大小的图片。简单来说,就是Core Graphics来创建一个bitmap,然后生成一个图片。 - (UIImage*)imageWithImage:(UIImage*)image ...

    ios应用源码之调整图片大小长宽的组件 20181210

    - 内存管理:大尺寸图片会占用大量内存,可能导致应用崩溃。因此,根据需要调整图片大小是必要的。 - 性能优化:加载和处理小尺寸图片比大尺寸图片更快,尤其在网络请求和界面渲染中。 3. **图片缩放方法** - `...

    swift-YCPhotoBrower一个简单轻量的照片浏览器可以通过传入url或UIImage创建

    - 为了保证图片加载速度和用户体验,YCPhotoBrower可能采用了延迟加载策略,只在需要时加载图片,减少了内存占用。此外,可能还利用了缓存机制,减少不必要的网络请求。 6. **源码结构** - 在`YCPhotoBrower-...

    ios加载大图

    综上所述,处理iOS中的大图问题需要从多个角度出发,包括调整图片尺寸、延迟解码、使用第三方库、优化内存缓存策略等。通过这些方法,我们可以有效地降低内存占用,提升应用性能和稳定性。在实际开发过程中,应根据...

    IOS应用源码——调整图片大小长宽的组件.zip

    综上所述,这个“调整图片大小长宽的组件”涵盖了iOS图片处理的多个核心知识点,包括图片格式转换、内存管理、图形渲染、并行处理、UI适配以及性能优化等,对于iOS开发者来说具有很高的学习价值。

    调整图片大小长宽的组件_IOS应用源码.rar

    4. **性能优化**:原始图片可能过大,占用过多内存,导致应用性能下降甚至崩溃。因此,根据需要调整图片尺寸可以减少内存消耗。通常,我们会为不同设备和用途准备多个版本的图片,例如@1x、@2x和@3x。 5. **自动...

    IOS应用源码之调整图片大小长宽的组件 .rar

    通过先缩小图片的尺寸再进行其他操作,可以有效地减少内存占用。 4. **性能优化**:如果需要频繁地调整图片大小,可以预先进行图片尺寸的转换并保存,避免每次需要时都进行计算。另外,异步处理图片也可以避免阻塞...

    ios-改变图片的大小.zip

    在iOS开发中,有时我们需要对应用中的图片...总之,改变iOS中图片的大小涉及到多个技术层面,包括基本的图像操作、图形框架的使用以及性能和内存管理。通过理解这些知识点,开发者可以灵活地调整图片,满足应用的需求。

    多频首页(1) uiscrollview 降低消耗内存 的例子

    首先,`UIScrollView`是一个可以容纳比屏幕大得多的内容的视图,用户可以通过手势进行平移和缩放操作。在`UIScrollView`中添加`UIButton`(btn)并限制只允许左右滑动,不允许上下滑动,这通常意味着我们需要创建一...

Global site tag (gtag.js) - Google Analytics