+ (UIImage *)imageNamed:(NSString *)name
inBundle:(NSBundle *)bundle
compatibleWithTraitCollection:(UITraitCollection *)traitCollection

  name:图片的名字。bundle:设置为nil则默认为main bundle。traitCollection:设置为nil则为main screen中描述的traits。

  该方法在系统的缓存中查找具有指定名字和特征集的图像并返回。如果在缓存中没有找到,该方法将定位到disk和asset catalog查找图像。如果没有合适的图像,将返回nil。

+ (UIImage *)imageNamed:(NSString *)name

  如果屏幕的scale为2.0,该方法首先搜索带@2x后缀的文件名。如,name = @“button",会先搜索button@2x的文件。


创建新的图像对象

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

  path参数可为绝对路径或者相对路径。该方法不会缓存图像对象。

+ (UIImage *)imageWithData:(NSData *)data
+ (UIImage *)imageWithData:(NSData *)data
scale:(CGFloat)scale

  如果scale = 1.0,将使得图像的大小跟基于像素的图像大小相匹配。如果scale = 2.0,图像的大小将会改变。

+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage  
+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation

  orientation指定图像的方向。

+ (UIImage *)imageWithCIImage:(CIImage *)ciImage
+ (UIImage *)imageWithCIImage:(CIImage *)ciImage
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation
- (UIImage *)imageWithAlignmentRectInsets:(UIEdgeInsets)alignmentInsets
+ (UIImage *)animatedImageNamed:(NSString *)name
duration:(NSTimeInterval)duration

  name:绝对路径或相对路径,无后缀。

+ (UIImage *)animatedImageWithImages:(NSArray<UIImage *> *)images
duration:(NSTimeInterval)duration

  images:UIImage对象组成的数组,全部的图像应当具有相同的size和scale。

+ (UIImage *)animatedResizableImageNamed:(NSString *)name
capInsets:(UIEdgeInsets)capInsets
duration:(NSTimeInterval)duration

  如果name = @"image",这个方法会尝试去加载文件名为image0,image1, ... , image1024的图像。全部图像应具有相同的size和scale。

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
+ (UIImage *)animatedResizableImageNamed:(NSString *)name
capInsets:(UIEdgeInsets)capInsets
resizingMode:(UIImageResizingMode)resizingMode
duration:(NSTimeInterval)duration
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
resizingMode:(UIImageResizingMode)resizingMode

  图像的resizingMode 默认为UIImageResizingModeTile。当想要使用UIImageResizingModeStretch时,才调用该方法。

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode
- (UIImage *)imageFlippedForRightToLeftLayoutDirection

  水平翻转图像。


初始化UIImage对象:

- (instancetype)initWithContentsOfFile:(NSString *)path

  path:文件的路径,应包含扩展名。

  该方法将图像加载入内存并标记为purgeable。如果需要加载图像数据时但已被清除,图像对象会再次从指定的路径加载数据。

- (instancetype)initWithData:(NSData *)data
- (instancetype)initWithData:(NSData *)data
scale:(CGFloat)scale
- (instancetype)initWithCGImage:(CGImageRef)CGImage
- (instancetype)initWithCGImage:(CGImageRef)imageRef
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation
- (instancetype)initWithCIImage:(CIImage *)ciImage
- (instancetype)initWithCIImage:(CIImage *)ciImage
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation

图像对象的属性:

@property(nonatomic, readonly) UIImageOrientation imageOrientation

typedef enum {

UIImageOrientationUp,

UIImageOrientationDown ,   // 180 deg rotation

UIImageOrientationLeft ,   // 90 deg CW

UIImageOrientationRight ,   // 90 deg CCW

UIImageOrientationUpMirrored ,    // as above but image mirrored along

// other axis. horizontal flip

UIImageOrientationDownMirrored ,  // horizontal flip

UIImageOrientationLeftMirrored ,  // vertical flip

UIImageOrientationRightMirrored , // vertical flip

} UIImageOrientation;

@property(nonatomic, readonly) CGSize size

  size反应了图像以point测量的逻辑大小。

@property(nonatomic, readonly) CGFloat scale

  如果加载的图像文件名包括@2x,scale则为2.0。其他图像都假设其scale为1.0。

  size * scale 可获得图像的像素大小。

@property(nonatomic, readonly) BOOL flipsForRightToLeftLayoutDirection
@property(nonatomic, readonly) UIImageResizingMode resizingMode

typedef enum {

UIImageResizingModeTile,

UIImageResizingModeStretch,

} UIImageResizingMode;

@property(nonatomic, readonly) CGImageRef CGImage
@property(nonatomic, readonly) CIImage *CIImage
@property(nonatomic, readonly) NSArray <UIImage *> *images

  对于non-animated图像,images的值为nil。

@property(nonatomic, readonly) NSTimeInterval duration

  对于non-animated图像,duration的值为0.0。

@property(nonatomic, readonly) UIEdgeInsets capInsets
@property(nonatomic, readonly) UIEdgeInsets alignmentRectInsets
@property(nonatomic, readonly) UIImageAsset *imageAsset
@property(nonatomic, readonly, copy) UITraitCollection *traitCollection
@property(nonatomic, readonly) UIImageRenderingMode renderingMode

typedef enum : NSInteger {

UIImageRenderingModeAutomatic,

UIImageRenderingModeAlwaysOriginal,

UIImageRenderingModeAlwaysTemplate,

information

} UIImageRenderingMode;


绘制图像:

- (void)drawAtPoint:(CGPoint)point

  point:图像的左上角。

  该方法绘制的图像完全不透明,并使用kCGBlendModeNormal 混合模式。

- (void)drawAtPoint:(CGPoint)point
blendMode:(CGBlendMode)blendMode
alpha:(CGFloat)alpha
- (void)drawInRect:(CGRect)rect
- (void)drawInRect:(CGRect)rect
blendMode:(CGBlendMode)blendMode
alpha:(CGFloat)alpha
- (void)drawAsPatternInRect:(CGRect)rect

UIImage 类说明的更多相关文章

  1. UIImage类扩展返回一个带边框的圆形图片

    /** * 将image转换为圆型带边框的图片(最好写一个UIImage的类扩展) * * @param name 图片的名字 * @param borderWidth 外层边框的宽度 * @para ...

  2. 关于UIImage类的对象两种初始化方法的区别

    1.imageNamed: UIImage *image = [UIImage imageNamed:"]; UIImage的类方法 第一次读取图片的时候,先把这个图片放到缓存中,下次再使用 ...

  3. 聊天气泡 button backgroundImage uiimage 拉伸 stretchableImageWithLeftCapWidth: 方法的使用

    - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCap ...

  4. UIImage学习

    UIImage A UIImage object is a high-level way to display image data. You can create images from files ...

  5. UIImage 相关操作

    修改UIImage大小 修改UISlider的最大值和最小值图片的时候,发现需要修改图片的大小,否则会导致UISlider变形.目前苹果还不支持直接修改UIImage类的大小,只能修改UIImageV ...

  6. [转] UIImage 图像-IOS开发 (实例)

    转自  http://justcoding.iteye.com/blog/1470931 一 UIImageView 简介 UIImageView是显示图片的控件,显示图片时,首先需要把图片加载到UI ...

  7. Swift - 使用CGBlendMode改变UIImage颜色

    类似于PS,Swift中也可对图片UIImage进行图层混合(blending),而且提供了相当丰富的混合模式(blendMode).本文先介绍使用其中的kCGBlendModeDestination ...

  8. UIImage扩展用代码直接改变图片大小

    以下内容属于转载 在iOS中,uiimage没有用于修改大小的属性,要在代码中改变uiimage图片的大小,需要扩展UIImage类,如下: 头文件: #import<UIKit/UIKit.h ...

  9. IOS 修改UIImage大小

    在iOS中,uiimage没有用于修改大小的属性,要在代码中改变uiimage图片的大小,需要扩展UIImage类,如下: 头文件: #import<UIKit/UIKit.h> @int ...

随机推荐

  1. OkHttp3源码详解(五) okhttp连接池复用机制

    1.概述 提高网络性能优化,很重要的一点就是降低延迟和提升响应速度. 通常我们在浏览器中发起请求的时候header部分往往是这样的 keep-alive 就是浏览器和服务端之间保持长连接,这个连接是可 ...

  2. Django+MongoDB批量插入数据

    在百万级和千万级数据级别进行插入,pymongo的insert_many()方法有着很强的优势.原因是每次使用insert_one()方法进行插入数据,都是要对数据库服务器进行一次访问,而这样的访问是 ...

  3. Python 反射机制之hasattr()、getattr()、setattr() 、delattr()函数

    反射机制 先看看我对Java中反射机制的通俗理解:反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化 ...

  4. Javascript模版引擎mustache.js简介

    背景 最近使用ELK的sentinl进行告警配置,sentinl的邮件通知支持mustache,借此机会学习了mustache相关知识,记录在此. mustache的思想 mustache的核心是标签 ...

  5. c/c++ 标准库 bind 函数 详解

    标准库 bind 函数 详解 bind函数:接收一个函数名作为参数,生成一个新的函数. auto newCallable = bind(callbale, arg_list); arg_list中的参 ...

  6. June 16. 2018, Week 24th. Saturday

    Success is the ability to go from one failure to another with no loss of enthusiasm. 成功,就是即使经历过一个又一个 ...

  7. js FormData方法介绍

    1. 概述 FormData类型其实是在XMLHttpRequest 2级定义的,它是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利. 2. 构造函数 创建一个formData ...

  8. 18年10月份最新免费申请微软OneDrive5TB云盘超详细教程!(已亲测!)

    本人已于今天10月23日亲测,成功获取微软OneDrive5T云盘! 第一步:.打开申请链接学生版:https://signup.microsoft.com/signup?sku=student教师版 ...

  9. Maven——settings.xml配置

    settings.xml配置 原文 <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed ...

  10. FastJSON、Gson和Jackson性能对比

    Java处理JSON数据有三个比较流行的类库FastJSON.Gson和Jackson.本文将测试这三个类库在JSON序列化和反序列化的方面表现,主要测试JSON序列化和反序列化的速度.为了防止由于内 ...