使用imageNamed 与 imageWithContentsOfFile加载图片的区别

原创 2013年12月02日 23:24:23

用UIImage加载图像的方法很多,最常用的是下面两种:

    1、用imageNamed方式加载:

[UIImage imageNamed:@"imgName.png"];

    2、用NSData的方式加载:

   1. NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"imgName" ofType:@"png"];
   2. NSData *image = [NSData dataWithContentsOfFile:imgPath];
   3. [UIImage imageWithData:image];

下面我们来讨论一下这两种方法加载图片的区别(主要是在占用内存方面的区别):    

    1)用imageNamed的方式加载时,系统会把图像缓存到内存。如果图片比较大,或者图图片比较多,用这种方式会消耗很大的内存,而且释放图像的 内存是一件相对来说比较麻烦的事情。例如:如果利用imageNamed的方式加载图像到一个动态数组NSMutableArray,然后将将数组赋予一 个UIView的对象的animationImages进行逐帧动画,那么这将会很有可能造成内存泄露。并且释放图像所占据的内存也不会那么简单。但是利 用imageNamed加载图像也有自己的优势。对于同一个图像系统只会把它Cache到内存一次,这对于图像的重复利用是非常有优势的。例如:你需要在 一个TableView里重复加载同样一个图标,那么用imageNamed加载图像,系统会把那个图标Cache到内存,在Table里每次利用那个图 像的时候,只会把图片指针指向同一块内存。这种情况使用imageNamed加载图像就会变得非常有效。

    2)利用NSData方式加载时,图像会被系统以数据方式加载到程序。当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。

    无论用哪种方式加载图像,图像使用结束后,一定要记得显示释放内存。

相关文章推荐

imageNamed与imageWithContentsOfFile加载图片的区别

//----------------------------------图片—————————————————————————    //读取本地图片   #define LOADIMAGE(f...

探究imageNamed 与imageWithContentsOfFile加载图片本质区别

IOS内存稀缺,而图片资源通常又是最占内存的部分之一,因此,选择如何加载图片,对于优化应用内存占用量,能起到立竿见影的效果。通常加载图片的方式有两种: 一、imageNamed 这种方法会首先在系...

iOS加载图片imageNamed方法还是imageWithContentsOfFile

原文链接:点击打开链接 Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其参数为图片的名字; 2. imageWithContentsOfFil...

加载图片的三种方法imageNamed、imageWithContentsOfFile、NSData

imageNamedUIImage *image = [UIImage imageNamed:@"imageName"]; 此方法是用一个指定的名字,在系统缓存中查找并返回一个图片对象(如果它存在的话...

UIImage加载图片选择imageNamed方法还是imageWithContentsOfFile?

Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其参数为图片的名字; 2. imageWithContentsOfFile,其参数也是图片文件...

iOS学习笔记-- 加载图片选择imageNamed 方法还是 imageWithContentsOfFile

Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其参数为图片的名字; 2. imageWithContentsOfFile,其参数也是图片文件的路径。...

iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?

Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其参数为图片的名字; 2. imageWithContentsOfFile,其参数也是图片文件...

imageNamed和imageWithContentsOfFile-无法加载图片的问题

问题产生过程: 图片资源放在Assets.xcassets中,分别用UIImage的类方法imageNamed和imageWithContentsOfFile获取图片对象,但发生奇怪的情况,前者获取到...

IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别

IOS内存稀缺,而图片资源通常又是最占内存的部分之一,因此,选择如何加载图片,对于优化应用内存占用量,能起到立竿见影的效果。通常加载图片的方式有两种: 1、imageNamed 为什么有两种方法完成同...

IOS图片加载方式:imageNamed和imageWithContentsOfFile的区别

一、imageNamed方法: //    这种方法会首先在系统缓存中根据指定的名字寻找图片,如果找到了就返回。如果没有在缓存中找到图片,该方法会从指定的文件中加载图片数据,并将其缓存起来,然后再...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用imageNamed 与 imageWithContentsOfFile加载图片的区别
举报原因:
原因补充:

(最多只允许输入30个字)