加载图片的三种方法imageNamed、imageWithContentsOfFile、NSData
来源:互联网 发布:联通5g网络 编辑:程序博客网 时间:2024/05/14 10:00
imageNamed
UIImage *image = [UIImage imageNamed:@"imageName"];
此方法是用一个指定的名字,在系统缓存中查找并返回一个图片对象(如果它存在的话)。如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象。对于同一个图像,系统只会把它Cache到内存一次,这对于图像的重复利用是非常有优势的。
例如:你需要在 一个TableView里的每个TableViewCell里都加载同样一个图标,那么用imageNamed加载图像效率很高。系统会把那个图标Cache到内存,在TableViewCell里每次利用那个图像的时候,只会把图片指针指向同一块内存。正是因此,使用imageNamed会缓存图片,即将图片的数据放在内存中,iOS的内存非常珍贵并且在内存消耗过大时,会强制释放内存,即会遇到memory warnings。而在iOS系统里面释放图像的内存是一件比较麻烦的事情,有可能会造成内存泄漏。
imageWithContentsOfFile
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];UIImage *image = [UIImage imageWithContentsOfFile:filePath];
此方法仅加载图片,图像数据不会缓存。因此对于较大的图片以及使用情况较少时,那就可以用该方法,降低内存消耗。
例如:当一 个UIView对象的animationImages是一个装有UIImage对象动态数组NSMutableArray,并进行逐帧动画。当使用imageNamed的方式加载图像到一个动态数组NSMutableArray,这将会很有可能造成内存泄露。原因很显然的。
imageWithData
UIImage *image = [UIImage imageWithData:data];
此方法加载图片时,图像会被系统以数据方式加载到程序。当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。
0 0
- 加载图片的三种方法imageNamed、imageWithContentsOfFile、NSData
- 加载图片使用imageNamed方法还是 imageWithContentsOfFile?
- iOS加载图片imageNamed方法还是imageWithContentsOfFile
- 加载图片选择imageNamed 方法还是 imageWithContentsOfFile
- imageNamed与imageWithContentsOfFile加载图片的区别
- imageNamed与imageWithContentsOfFile加载图片的区别
- imageNamed与imageWithContentsOfFile加载图片的区别
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- UIImage加载图片选择imageNamed方法还是imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
- MFC中UpdateData()函数的使用
- Jquery attr获取option属性值
- Android如何获取判断是否有悬浮窗权限
- C语言內嵌汇编
- 172_起重机 Carane (POj 2991)
- 加载图片的三种方法imageNamed、imageWithContentsOfFile、NSData
- 十大编程算法助程序员走上高手之路
- ES6学习——Promises:应用示例
- 话
- 95. Unique Binary Search Trees II
- nova<--openstack-->札记
- Hadoop2.0的HA介绍
- SpingMvc RequestMapping 用法
- 爬虫 XPath