// 一、imageNamed
// imageNamed:是UIImage的一个类方法,加载流程如下:
// 系统会回去检查系统缓存中是否存在该名字的图像,如果存在则直接返回。
// 如果系统缓存中不存在该名字的图像,则会先加载到缓存中,再返回该对象。
// 使用imageNamed:方法加载图像的时候,系统会自动帮我们缓存。这种机制适合于那种频繁用到贴图的界面的加载,也就是如果这张图⽚用的次数比较多的话,建议使用这种⽅式。但如果我们需要短时间内频繁的加载一些一次性的图像的话,最好不要使用这种方法。
// 缺点是效率低下。
[UIImage imageNamed:@"1.png"];
// 二、imageWithContentsOfFile: 和 initWithContentsOfFile:
// 这两个方法跟前一个方法一样都是完成从文件加载图像的功能。但是不会经过系统缓存,直接从文件路径中加载并返回。
// 比较第一种方式, 这个是直接加载图片的,所以建议在图片使用率低的图片时使用这个方法。
// ps.当收到内存警告的时候,系统可能会将UIImage内部存储的图像的内存释放,下一次需要绘制的时候会重新去加载。
NSString *path = [NSString stringWithFormat:@"%@/Documents/%@.jpg", NSHomeDirectory(), @"test"];
[UIImage imageWithContentsOfFile:path];
// 三、imageWithCGImage:scale:orientation:
// 该方法使用一个CGImageRef创建UIImage,在创建时还可以指定倍数以及旋转方向。当scale设置为1的时候,新创建的图像将和原图像尺寸一摸一样,而orientaion则可以指定新的图像的绘制方向,是个枚举类。
[UIImage imageWithCGImage:<#(nonnull CGImageRef)#> scale:<#(CGFloat)#> orientation:<#(UIImageOrientation)#>];
回马枪。