UIImage 类说明

+ (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",会先搜索[email protected]的文件。



创建新的图像对象

+ (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
时间: 2024-09-30 15:37:13

UIImage 类说明的相关文章

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

/** * 将image转换为圆型带边框的图片(最好写一个UIImage的类扩展) * * @param name 图片的名字 * @param borderWidth 外层边框的宽度 * @param borderColor 外层边框的颜色 * * @return 返回已经处理好的圆形图片 */ + (instancetype)circleImageWithName:(NSString *)name borderWidth:(CGFloat)borderWidth borderColor:(U

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

1.imageNamed: 1 UIImage *image = [UIImage imageNamed:@"1"]; UIImage的类方法 第一次读取图片的时候,先把这个图片放到缓存中,下次再使用这个名字的图片时,直接从缓存中读取:如果缓存中不存在这个名字的图像,则先把该图片加载到缓存中,再返回该对象.如果我们需要短时间内频繁的加载一些一次性的图像,最好不要使用这种方法. 优点:方便快捷,只有第一次使用的时候稍慢,接下来再使用就会稍微快点: 缺点:如果在当前工程中只使用一次,就会浪

UIImage 的imageWithContentsOfFile:path和imageNamed的区别

在做 tomcat 小例子的时候,发现了这个问题,摘自官方文档 + (UIImage *)imageWithContentsOfFile:(NSString *)path 通过加载指定路径(全路径)中的文件,查找加载图像数据,从而生成并返回一个图形对象(或者 nil),但是仅仅是加载出图像的对象,并不缓存这个图形对象. 一般用法: NSString *file = [[NSBundle mainBundle] pathForResource:name ofType:nil]; UIImage *

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

以下内容属于转载 在iOS中,uiimage没有用于修改大小的属性,要在代码中改变uiimage图片的大小,需要扩展UIImage类,如下: 头文件: #import<UIKit/UIKit.h> @interface UIImage (UIImageExtras) - (UIImage *)imageByScalingToSize:(CGSize)targetSize; @end .m文件 #import"UIImage+UIImageExtras.h" @impleme

【iOS沉思录】UIImage圆角矩形的‘离屏渲染’和‘在屏渲染’实现方法

iOS中为view添加圆角效果有两种方式,一种基于"离屏渲染"(off-screen-renderring),直接设置view的layer层参数即可简单实现,也很常用,但性能较低:另一种则是编写底层图形代码,实现'在屏渲染'(on-screen-renderring),可以大大优化绘制性能. iOS中圆角效果实现的最简单.最直接的方式,是直接修改View的layer层参数: /* 设置圆角半径 */ view.layer.cornerRadius = 5; /* 将边界以外的区域遮盖住

UIImage 相关操作

修改UIImage大小 修改UISlider的最大值和最小值图片的时候,发现需要修改图片的大小,否则会导致UISlider变形.目前苹果还不支持直接修改UIImage类的大小,只能修改UIImageView的大小. 所以只能通过写方法的方式来实现修改图片.如下: //UIImage.h #import <Foundation/Foundation.h> @interface UIImage (Scale) -(UIImage *)TransformtoSize:(CGSize)Newsize;

SDWebImage源码阅读(三)UIImage+GIF

UIImage+GIF 是UIImage 类的一个GIF 分类,在之前的版本里面这个分类是用了处理GIF 动态图片的但是会有内存暴增的bug.在当前 '4.0.0-beta2' 的版本里GIF 动态图片处理放在了UIImage+MultiFormat  这个分类里面,而当前这个GIF 的分类的功能只是将动态图片作为静态图片来处理,如果是静态图片的NSData 数据则转化为静态UIImage 直接返回,如果是动态图片的NSData 数据,则把图像的第1帧图像转换化为静态UIImage 返回. 首先

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

[转自] http://justcoding.iteye.com/blog/1470931 一 UIImageView 简介 UIImageView是显示图片的控件,显示图片时,首先需要把图片加载到UIImage控件中,然后根据UIImage控件,设置到UIImageView相对应的属性中. 1 创建UIImage对象 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //使用应用程序中图片文件创建,IOS4后可以省略图片扩展名: + (UIImage *)

[Xcode10 实际操作]九、实用进阶-(17)使用CGBlendMode改变UIImage颜色,实现对图片进行混合着色

本文将演示如何使用CGBlendMode改变UIImage颜色,实现对图片进行混合着色. 在项目文件夹[DemoApp]上点击鼠标右键 ->[New File]创建一个扩展文件->模板选择窗口:[Swift File]->[Next] ->[Save As]:ExtensionUIImage.swift->保存默认的存储位置点击[Create] 在[ExtensionUIImage.swift]添加一个针对UIImage类的扩展. 扩展可以向一个已有的类.结构体或枚举类型添加