美文网首页iOS移动开发社区iOS 艾欧艾斯IOS
iOS图像处理(一)UIImage创建图像

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

作者: JerryLMJ | 来源:发表于2016-05-28 15:47 被阅读2344次

    前言

    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创建图像

        本文链接:https://www.haomeiwen.com/subject/vaqmrttx.html