五种创建UIImage的类方法

UIImage有五个类方法,用来创建UIImage的。下面介绍一下每个类方法的作用和创建实例。

1.使用类方法imageNamed:创建

+ (UIImage *)imageNamed:(NSString *)name;      // load from main bundle

name是照片名称。创建UIImage对象,代码如下:

UIImage *image = [UIImage imageNamed:@"ganggang"];

使用imageNamed:初始化的时候,会先检查缓存中是否存在ganggang的照片,如不存在,图片首先会被缓存起来,然后才返回要加载的图片对象;如果存在,直接返回要加载的照片对象。

2.使用类方法imageWithContentsOfFile:创建

+ (UIImage *)imageWithContentsOfFile:(NSString *)path;

path是需要加载照片的路径,如何获取照片的路径请点击iOS开发之获取沙盒路径。实现代码如下:

UIImage *image = [UIImage imageWithContentsOfFile:path];

使用imageWithContentsOfFile:创建UIImage的时候,是直接从磁盘上加载。当收到内存警告时,UIImage对象会被释放,下一次绘图的时候,需要重新加载。

3.使用类方法imageWithData:创建

+ (UIImage *)imageWithData:(NSData *)data;

data是照片数据,一般是请求返回的,然后通过imageWithData:创建UIImage。实现代码如下所示:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.superqq.com/images/getqrcode.jpg"]];
UIImage *image =[UIImage imageWithData:data];

4.使用类方法imageWithCGImage:创建

+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage;

cgImage是定义在QuartzCore框架中的一个结构体指针。这个结构用来创建像素位图,可以通过操作存储的像素位来编辑图片。

UIImage *image = [UIImage imageWithCGImage:cgImage];

5.使用类方法imageWithCIImage:创建

+ (UIImage *)imageWithCIImage:(CIImage *)ciImage NS_AVAILABLE_IOS(5_0);

CIImageCoreImage框架中最基本代表图像的对象,在CIImageCIContext渲染出来之前,他是依赖于滤镜链的,滤镜是不会更改CIImage中的图像数据。

 UIImage *image = [UIImage imageWithCGImage:ciImage];

以上四种方法都是UIImage的类方法,使用UIImage的初始化方法也是可以创建UIImage对象的大家可以进UIImage详细了解一下。

本文出处刚刚在线:http://www.superqq.com/blog/2015/07/28/four-create-uiimage-method/

五种创建UIImage的类方法的更多相关文章

  1. java架构之路-(设计模式)五种创建型模式之单例模式

    设计模式自身一直不是很了解,但其实我们时刻都在使用这些设计模式的,java有23种设计模式和6大原则. 设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可 ...

  2. Linux常用命令 - 五种创建文件命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 创建文 ...

  3. 几种创建XMLHttpRequest对象的方法

    XMLHttpRequest对象,也就是Ajax交互的核心对象. 这里列举三种创建Ajax对象的方法. 第一种: <!DOCTYPE html> <html> <head ...

  4. JAVA中创建线程池的五种方法及比较

    之前写过JAVA中创建线程的三种方法及比较.这次来说说线程池. JAVA中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用.另一类是通过Thr ...

  5. 简单阐述下OC中UIImage三种创建方式~~~

    一. 直接使用imageNamed进行创建 UIImage * image = [UIImage imageNamed:@"1.jpg"]; 简单说一下这种方式的优缺点: 优点:代 ...

  6. 五种情况下会刷新控件状态(刷新所有子FWinControls的显示)——从DFM读取数据时、新增加子控件时、重新创建当前控件的句柄时、设置父控件时、显示状态被改变时

    五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整 ...

  7. Java中创建(实例化)对象的五种方式

    Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...

  8. 第五种方式,python使用组合来添加类方法和属性(二),以selenium的webdriver为例

    组合优点多,但经常比继承需要额外的代码. 上一篇是 介绍装饰器.继承.元类.mixin,四种給类动态添加类属性和方法的四种方式. 此篇介绍直接把被组合的类的属性直接加入到类里面,前面的四个例子很简单, ...

  9. java多线程(一)-五种线程创建方式

    简单使用示例 Java 提供了三种创建线程的方法: 通过实现 Runnable 接口: 通过继承 Thread 类本身: 通过 Callable 和 Future 创建线程. 还有 定时器 线程池 下 ...

随机推荐

  1. andriod手机签到应用服务器设计

    最近导师要求我和另一个同学开发一个手机上课签到应用,我负责客户端和服务器之间的通信架构编写和数据的存储 本人大学四年只用过汇编和C/C++,因此对andriod开发还是一窍不通,花了一个星期写出来了基 ...

  2. 用于软件包管理的21个Linux YUM命令 转载

    http://flycars001.iteye.com/blog/1949085 YUM到底是啥东东? YUM(Yellowdog Updater Modified)是一款开源命令行及图形化软件包管理 ...

  3. 算法解读:s变量和数组

    算法是解决问题并获得结果的过程.在这个处理过程中,问题以数据的形式输入,结果同样以数据的形式输出,在算法的处理过程中,也需要各种临时的数据. 数据是什么? 数据是多种不同信息的表现. 以料理中的食谱为 ...

  4. CSS--复习之旅(一)

    CSS概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现分 ...

  5. EF容器---代理类对象

    #region 修改--官方的修改是,先查询,然后修改 /// <summary> /// 修改--官方的修改是,先查询,然后修改 /// </summary> static ...

  6. 数论 - Miller_Rabin素数测试 + pollard_rho算法分解质因数 ---- poj 1811 : Prime Test

    Prime Test Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 29046   Accepted: 7342 Case ...

  7. ASP.NET MVC中错误日志信息记录

    MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public clas ...

  8. Aspose.Word 操作word复杂表格 拆分单元格 复制行 插入行 文字颜色

    private void button3_Click(object sender, EventArgs e)         {             object savePathWord =&q ...

  9. 基于吉日嘎底层架构的Web端权限管理操作演示-角色管理

    上一篇介绍了用户管理,这篇来介绍角色管理,这是权限管理的核心部分,因为我们的权限管理系统是基于角色的,有个高大上的英文名叫RBAC(Role Based Acccess Control). 下面的这段 ...

  10. IIS7.5支持解析读取.json文件数据

    在站点中添加 MIME类型去支持Json文件的解析 添加mime类型 文件扩展名:.json MIME类型:application/json 添加成功后即可. 如果不能直接操作iis也可以直接在web ...