93 lines
2.9 KiB
Objective-C
93 lines
2.9 KiB
Objective-C
//
|
|
// YYImage.h
|
|
// YYImage <https://github.com/ibireme/YYImage>
|
|
//
|
|
// Created by ibireme on 14/10/20.
|
|
// Copyright (c) 2015 ibireme.
|
|
//
|
|
// This source code is licensed under the MIT-style license found in the
|
|
// LICENSE file in the root directory of this source tree.
|
|
//
|
|
|
|
#import <UIKit/UIKit.h>
|
|
|
|
#if __has_include(<YYImage/YYImage.h>)
|
|
FOUNDATION_EXPORT double YYImageVersionNumber;
|
|
FOUNDATION_EXPORT const unsigned char YYImageVersionString[];
|
|
#import <YYImage/YYFrameImage.h>
|
|
#import <YYImage/YYSpriteSheetImage.h>
|
|
#import <YYImage/YYImageCoder.h>
|
|
#import <YYImage/YYAnimatedImageView.h>
|
|
#elif __has_include(<YYWebImage/YYImage.h>)
|
|
#import <YYWebImage/YYFrameImage.h>
|
|
#import <YYWebImage/YYSpriteSheetImage.h>
|
|
#import <YYWebImage/YYImageCoder.h>
|
|
#import <YYWebImage/YYAnimatedImageView.h>
|
|
#else
|
|
#import "YYFrameImage.h"
|
|
#import "YYSpriteSheetImage.h"
|
|
#import "YYImageCoder.h"
|
|
#import "YYAnimatedImageView.h"
|
|
#endif
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
|
|
/**
|
|
A YYImage object is a high-level way to display animated image data.
|
|
|
|
@discussion It is a fully compatible `UIImage` subclass. It extends the UIImage
|
|
to support animated WebP, APNG and GIF format image data decoding. It also
|
|
support NSCoding protocol to archive and unarchive multi-frame image data.
|
|
|
|
If the image is created from multi-frame image data, and you want to play the
|
|
animation, try replace UIImageView with `YYAnimatedImageView`.
|
|
|
|
Sample Code:
|
|
|
|
// animation@3x.webp
|
|
YYImage *image = [YYImage imageNamed:@"animation.webp"];
|
|
YYAnimatedImageView *imageView = [YYAnimatedImageView alloc] initWithImage:image];
|
|
[view addSubView:imageView];
|
|
|
|
*/
|
|
@interface YYImage : UIImage <YYAnimatedImage>
|
|
|
|
+ (nullable YYImage *)imageNamed:(NSString *)name; // no cache!
|
|
+ (nullable YYImage *)imageWithContentsOfFile:(NSString *)path;
|
|
+ (nullable YYImage *)imageWithData:(NSData *)data;
|
|
+ (nullable YYImage *)imageWithData:(NSData *)data scale:(CGFloat)scale;
|
|
|
|
/**
|
|
If the image is created from data or file, then the value indicates the data type.
|
|
*/
|
|
@property (nonatomic, readonly) YYImageType animatedImageType;
|
|
|
|
/**
|
|
If the image is created from animated image data (multi-frame GIF/APNG/WebP),
|
|
this property stores the original image data.
|
|
*/
|
|
@property (nullable, nonatomic, readonly) NSData *animatedImageData;
|
|
|
|
/**
|
|
The total memory usage (in bytes) if all frame images was loaded into memory.
|
|
The value is 0 if the image is not created from a multi-frame image data.
|
|
*/
|
|
@property (nonatomic, readonly) NSUInteger animatedImageMemorySize;
|
|
|
|
/**
|
|
Preload all frame image to memory.
|
|
|
|
@discussion Set this property to `YES` will block the calling thread to decode
|
|
all animation frame image to memory, set to `NO` will release the preloaded frames.
|
|
If the image is shared by lots of image views (such as emoticon), preload all
|
|
frames will reduce the CPU cost.
|
|
|
|
See `animatedImageMemorySize` for memory cost.
|
|
*/
|
|
@property (nonatomic) BOOL preloadAllAnimatedImageFrames;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|