UIImage支持如下几种图片格式: jpg jpeg png gif tiff tif bmp bmpf ice cur xbm
当系统内存紧张的时候UIImage所承载的iamge元素会被清理出内存,当回事uiimage对象并不会被清理出去,当程序再次使用这个被清理过的图片资源的时候将自动从原始文件中加载图片数据
图片的创建:
如果用UIImage来显示静止的图片,UIImage提供了如下常用的类方法。
+ imageNamed::该方法用于加载指定文件名对应的图片。该方法有缓存机制,如果该方法试图加载的文件不存在,它才会去加载图片文件并缓存它;如果系统已经缓存过指定的图片,该方法将直接使用已缓存的图片。
当程序需要频繁地加载、卸载图片文件时,不应该使用该方法来加载图片。
+ imageWithContentsOfFile::该方法用于加载指定文件名对应的图片。
+ imageWithData::该方法用于根据NSData中封装的图片数据来创建图片。
+ imageWithData:scale::该方法用于根据NSData中封装的图片数据来创建图片,并按指定的缩放因子对图片进行缩放。
+ imageWithCGImage::该方法用于根据指定的CGImageRef对象来创建UIImage。
+ imageWithCGImage:scale:orientation::该方法用于根据指定的CGImageRef对象来创建UIImage,并将图片缩放到指定比例。该方法的最后一个参数指定对图片执行旋转、镜像等变换操作。
---------------------------------------------
如果需要从网络读取图片,可借助NSData的方法来加载指定URL对应的网络数据,然后利用UImage的imageWithData:方法来加载图片即可。例如如下代码:
NSURL* url = [NSURL URLWithString:@"http://www.crazyit.org/logo.jpg"];
NSData* data = [NSData dataWithContentsOfURL:url]
UIImage* image = [UIImage imageWithData:data];
-----------------------------
如果需要读取手机本地的图片,只要先获取图片路径,再利用UIImage的imageWithContentsOfFile:方法加载图片即可。例如如下代码:
NSString *path = [[NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"]
stringByAppendingPathComponent:@"fkjava.png"];
UIImage *image = [UIImage imageWithContentsOfFile:path];
--------------------------------
+ animatedImageNamed:duration::根据指定的图片名来加载系列图片。例如,调用该方法时的第一个参数名为butterfly,该方法将会自动加载butterfly0.png、butterfly1.png、butterfly2.png等图片。
+ animatedImageWithImages:duration::该方法需要传入一个NSArray作为多张动画图片。该NSArray中的每个元素都是UIImage对象。