前言
UIImage是UIKit框架中的一个高级别图像类,可以通过多种方法创建。
这个类提供的方法可以从各种源载入图像。
创建图像
UIImage提供了许多类方法和实例方法来创建一个图像实例:
-
+ imageNamed:
类方法,从应用程序包中加载图片,通过这种方式创建会建立图像缓存,第一次从文件中加载,以后都是从缓存中直接读取。
UIImage * image = [UIImage iamgeNamed:@"img"];
// 作为.png格式的图片,我们可以不添加后缀,当然其他格式如.jpg格式的图片是不可以的
UIImage * image = [UIImage iamgeNamed:@"img.jpg"];
-
+ imageWithContentsOfFile:
类方法,通过文件路径创建图像。
1、从应用程序包加载
NSString * path = [[NSBundle mainBundle] pathForResource:@"img" ofType:@"png"];
UIImage * image = [UIImage imageWithContentsOfFile:path];
2、从沙盒Document文件夹下加载
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
path = [path stringByAppendingPathComponent:@"img.png"];
UIImage * image = [UIImage imageWithContentsOfFile:path];
-
+ imageWithData:
类方法,通过内存中的NSData对象创建图像。
1、从应用程序包中加载
NSString * path = [[NSBundle mainBundle] pathForResource:@"img" ofType:@"png"];
NSData * data = [[NSData alloc] initWithContentsFile:path];
UIImage * image = [UIImage imageWithData:path];
2、从沙盒Document文件夹下加载
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
path = [path stringByAppendingPathComponent:@"img.png"];
NSData * data = [[NSData alloc] initWithContentsOfFile:path];
UIImage * image = [UIImage imageWithData:path];
3、从网络上加载
NSURL * url = [NSURL URLWithString:@"http://xxx/img.png"];
NSData * data = [[NSData alloc] initWithContentsOfURL:url];
UIImage * image = [UIImage imageWithData:path];
-
+ imageWithCGImage:
类方法,通过CGImageRef对象创建图像。
CGImageRef imageRef;
UIImage * image = [UIImage imageWithCGImage:imageRef];
-
+ imageWithCIImage:
类方法,通过CIImage对象创建图像。
CIImage * image;
UIImage * image = [UIImage imageWithCIImage:image];
-
- initWithContentsOfFile:
实例方法,跟+ imageWithContentsOfFile:
的用法相似,只不过它是实例方法。
UIImage * image = [[UIImage alloc] initWithContentsOfFile:path];
-
- initWithData:
实例方法,跟+ imageWithData:
的用法相似,只不过它是实例方法。
UIImage * image = [[UIImage alloc] initWithContentsOfData:data];
-
- initWithCGImage:
实例方法,跟+ imageWithCGImage:
的用法相似,只不过它是实例方法。
UIImage * image = [[UIImage alloc] initWithCGImage:imageRef];
-
- initWithCIImage:
实例方法,跟+ imageWithCIImage:
的用法相似,只不过它是实例方法。
UIImage * image = [[UIImage alloc] initWithCIImage:image];
通过相册、相机获得UIImage对象
关于如何从相册、相机获取UIImage对象,请参见iOS从相册和照相机读取图片(UIImagePickerController)这里有详细的解释。
版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!