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技术博客的原创作品 ,转载时必须注明出处及相应链接!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容