iOS图像处理(一)UIImage创建图像

前言

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)这里有详细的解释。

下一篇:iOS图像处理(二)Core Image介绍

版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!

你可能感兴趣的:(iOS图像处理(一)UIImage创建图像)