UIImage+Extends.m 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // UIImage+Extends.m
  3. // HKBaseNavigationDemo
  4. //
  5. // Created by hukaiyin on 16/6/26.
  6. // Copyright © 2016年 hukaiyin. All rights reserved.
  7. //
  8. #import "UIImage+Extends.h"
  9. @implementation UIImage (Extends)
  10. #pragma mark - Color
  11. - (UIImage *)imageWithTintColor:(UIColor *)tintColor blendMode:(CGBlendMode)blendMode {
  12. UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.f);
  13. [tintColor setFill];
  14. CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height);
  15. UIRectFill(bounds);
  16. [self drawInRect:bounds blendMode:blendMode alpha:1.f];
  17. UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext();
  18. UIGraphicsEndImageContext();
  19. return tintedImage;
  20. }
  21. + (UIImage *)imageWithColor:(UIColor *)color {
  22. CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
  23. UIGraphicsBeginImageContext(rect.size);
  24. CGContextRef context = UIGraphicsGetCurrentContext();
  25. CGContextSetFillColorWithColor(context, [color CGColor]);
  26. CGContextFillRect(context, rect);
  27. UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  28. UIGraphicsEndImageContext();
  29. return image;
  30. }
  31. #pragma mark - Size
  32. -(UIImage*)getSubImage:(CGRect)rect {
  33. CGImageRef subImageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
  34. CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef));
  35. UIGraphicsBeginImageContext(smallBounds.size);
  36. CGContextRef context = UIGraphicsGetCurrentContext();
  37. CGContextDrawImage(context, smallBounds, subImageRef);
  38. UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];
  39. UIGraphicsEndImageContext();
  40. return smallImage;
  41. }
  42. @end