iOS/WAStickersThirdParty/YYImage.h (31 lines of code) (raw):

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