YBIBImageData+Internal.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // YBIBImageData+Internal.h
  3. // YBImageBrowserDemo
  4. //
  5. // Created by 波儿菜 on 2019/6/12.
  6. // Copyright © 2019 波儿菜. All rights reserved.
  7. //
  8. #import "YBIBImageData.h"
  9. NS_ASSUME_NONNULL_BEGIN
  10. typedef NS_ENUM(NSInteger, YBIBImageLoadingStatus) {
  11. YBIBImageLoadingStatusNone,
  12. YBIBImageLoadingStatusCompressing,
  13. YBIBImageLoadingStatusDecoding,
  14. YBIBImageLoadingStatusQuerying,
  15. YBIBImageLoadingStatusProcessing,
  16. YBIBImageLoadingStatusDownloading,
  17. YBIBImageLoadingStatusReadingPHAsset,
  18. };
  19. @class YBIBImageData;
  20. @protocol YBIBImageDataDelegate <NSObject>
  21. @required
  22. - (void)yb_imageData:(YBIBImageData *)data startLoadingWithStatus:(YBIBImageLoadingStatus)status;
  23. - (void)yb_imageIsInvalidForData:(YBIBImageData *)data;
  24. - (void)yb_imageData:(YBIBImageData *)data readyForImage:(__kindof UIImage *)image;
  25. - (void)yb_imageData:(YBIBImageData *)data readyForThumbImage:(__kindof UIImage *)image;
  26. - (void)yb_imageData:(YBIBImageData *)data readyForCompressedImage:(__kindof UIImage *)image;
  27. - (void)yb_imageData:(YBIBImageData *)data downloadProgress:(CGFloat)progress;
  28. - (void)yb_imageDownloadFailedForData:(YBIBImageData *)data;
  29. @end
  30. @interface YBIBImageData ()
  31. @property (nonatomic, weak) id<YBIBImageDataDelegate> delegate;
  32. /// The status of asynchronous tasks.
  33. @property (nonatomic, assign) YBIBImageLoadingStatus loadingStatus;
  34. /// The origin image.
  35. @property (nonatomic, strong) UIImage *originImage;
  36. /// The image compressed by 'originImage' if need.
  37. @property (nonatomic, strong) UIImage *compressedImage;
  38. - (BOOL)shouldCompress;
  39. - (void)cuttingImageToRect:(CGRect)rect complete:(void(^)(UIImage * _Nullable image))complete;
  40. @end
  41. NS_ASSUME_NONNULL_END