NSObject+Extensions.m 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //
  2. // NSObject+Extensions.m
  3. // Private-X
  4. //
  5. // Created by xd h on 2024/5/26.
  6. //
  7. #import "NSObject+Extensions.h"
  8. @implementation NSObject (Extensions)
  9. @end
  10. @implementation UIImage (Extentions)
  11. - (UIImage *)getSubImage:(CGRect)rect{
  12. if (rect.origin.x+rect.size.width > self.size.width || rect.origin.y+rect.size.height > self.size.height) {
  13. return self;
  14. }
  15. CGImageRef subImageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
  16. CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef));
  17. UIGraphicsBeginImageContext(smallBounds.size);
  18. CGContextRef context = UIGraphicsGetCurrentContext();
  19. CGContextDrawImage(context, smallBounds, subImageRef);
  20. UIImage *smallImage = [UIImage imageWithCGImage:subImageRef];
  21. UIGraphicsEndImageContext();
  22. return smallImage;
  23. }
  24. - (UIImage *)imageByResizeToSize:(CGSize)size {
  25. if (size.width <= 0 || size.height <= 0){
  26. return nil;
  27. }
  28. UIGraphicsBeginImageContextWithOptions(size, NO, self.scale);
  29. [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
  30. UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  31. UIGraphicsEndImageContext();
  32. return image;
  33. }
  34. @end