123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- //
- // 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
|