1.继承链:NSObject
2.以下有三种方法来创建图片对象
(1) imageNamed:inBundle:compatibleWithTraitCollection:从image asset或者主要的捆绑包中载入图片来进行创建图片对象。
(2) imageWithContentsOfFile:
or initWithContentsOfFile:从本地文件中载入图片进行创建图片对象
(3) animatedImageWithImages:duration:
and animatedImageNamed:duration:可以创建一个包含多个图片的图片对象,一般是用来播放动画的
3.使用 UIImagePickerController可以让用户进入自己的相册选取照片
4. 使用resizableImageWithCapInsets:
or resizableImageWithCapInsets:resizingMode:方法可以定义可伸展图片,可以改变图片的大小以适合容器的大小,让人看起来更加舒服
5.使用isequal方法可以判断两张图片是否相等,这是唯一的方法,使用==是错误的
UIImage* image1 = [UIImage imageNamed:@"MyImage"];
UIImage* image2 = [UIImage imageNamed:@"MyImage"];
// The image objects may be different, but the contents are still equal
if ([image1 isEqual:image2]) {
// Correct. This technique compares the image data correctly.
}
6. 可以使用CGImage
and CIImage属性来检索各种版本的图片
7.可以使用 UIImagePNGRepresentation
and UIImageJPEGRepresentation功能来生成png或者JPEG格式的图片数据
8.可以使用的方法或者属性:
(1)+ (UIImage *)imageNamed:(NSString *)name
inBundle:(NSBundle *)bundle
compatibleWithTraitCollection:(UITraitCollection *)traitCollection,name是在bundle中图片的名称,bundle是用来存储图片的捆绑包,traitcollection暂时还不知道是干嘛的,它里面是这样描述的:The traits associated with the intended environment for the image. Use this parameter to ensure that the correct variant of the image is loaded. If you specify
nil
, this method uses the traits associated with the main screen.
(2)[image imageWithData:(NSData *)data]通过指定的图片数据对象用来创建和返回一个图片对象
(3)+ (UIImage *)imageWithData:(NSData *)data
scale:(CGFloat)scale 使用这个方法可以通过一个数据对象和比例创建和返回一个图片对象
(4)+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage 返回一个指定的quartz image对象转变后的对象
(5)+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation 返回一个设定比例和方向的图片对象 ,cgImage是一个quartz image对象
(6)+ (UIImage *)imageWithCIImage:(CIImage *)ciImage 创建和返回一个core image对象转变后的图片对象 , core image对象是经过压缩封装的图片
(7)+ (UIImage *)imageWithCIImage:(CIImage *)ciImage
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation 返回一个把core image对象的比例和方向转变后的图片对象
(8)- (instancetype)initWithData:(NSData *)data
scale:(CGFloat)scale 返回一个比例为scale且是data里面的图片对象
(9)+ (UIImage *)animatedImageNamed:(NSString *)name
duration:(NSTimeInterval)duration 返回一个动态图片,并且设定了一定的时间
(10)+ (UIImage *)animatedImageWithImages:(NSArray<UIImage *> *)images
duration:(NSTimeInterval)duration 返回一个图片对象,并且这个对象的内容由图片数组组成、还设定动画的时间
(11)+ (UIImage *)animatedResizableImageNamed:(NSString *)name
capInsets:(UIEdgeInsets)capInsets
duration:(NSTimeInterval)duration 返回的图片设定了边界距离属性和动画时间
(12)+ (UIImage *)animatedResizableImageNamed:(NSString *)name
capInsets:(UIEdgeInsets)capInsets
resizingMode:(UIImageResizingMode)resizingMode
duration:(NSTimeInterval)duration 返回的对象设定了边界距离属性、内部重构属性(我也不知道这是什么鬼)和动画时间,
注意:这个方法一般应用在动画需要改变大小的情况,resizingMode默认的类型是
UIImageResizingModeTile,动画改变时使用
UIImageResizingModeStretch属性
(13)- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode 返回的对象经过renderingmode参数渲染
(14)- (UIImage *)imageWithAlignmentRectInsets:(UIEdgeInsets)alignmentInsets 返回的对象经过边界距离属性调整,如果你重新调整了按钮的大小,但是北京图片的coners不会改变并且大小会跟随按钮的变化而变化
(15)- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
resizingMode:(UIImageResizingMode)resizingMode 只有当你想使用
UIImageResizingModeStretch方法来重构图片大小的时候你才可以调用这个方法
(16)- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth
topCapHeight:(NSInteger)topCapHeight 会改变图片里面的中间的区域,大小为leftcapwidth*topcapheight
9.只读属性:size、scale、imageorientation、flipsforrighttoleftlayoutdirection、resizingmode、cgimage、ciimage、images、duration、capinset、alignmentrectinsets、imageasset、traitcollection
10.drawing images
(1)- (void)drawAtPoint:(CGPoint)point在当前的上下文中绘画图片到指定的点上
(2)
- (void)drawAtPoint:(CGPoint)
point
blendMode:(CGBlendMode)blendMode
alpha:(CGFloat)alpha
Parameters
point |
The point at which to draw the top-left corner of the image. |
blendMode |
The blend mode to use when compositing the image. |
alpha |
The desired opacity of the image, specified as a value between 0.0 and 1.0. A value of 0.0 renders the image totally transparent while 1.0 renders it fully opaque. Values larger than 1.0 are interpreted as 1.0. |
rect 在当前的上下文中重新绘制整个图片的大小
rect
blendMode:(CGBlendMode)blendMode
alpha:(CGFloat)alpha 在当前的上下文中重新绘制图片的大小、模式和透明度
rect 在指定的矩形中使用Quartz pattern来拼凑图片
UIImageRenderingMode:UIImageRenderingModeAutomatic, UIImageRenderingModeAlwaysOriginal, UIImageRenderingModeAlwaysTemplate,