UIImage+Crop.m 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #import "UIImage+Crop.h"
  2. @implementation UIImage (Crop)
  3. + (UIImage*)imageWithImageSimple:(UIImage*)image
  4. scaledToSize:(CGSize)newSize
  5. {
  6. UIGraphicsBeginImageContext(newSize);
  7. [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
  8. UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  9. UIGraphicsEndImageContext();
  10. return newImage;
  11. }
  12. - (UIImage *)cropImageWithX:(CGFloat)x
  13. y:(CGFloat)y
  14. width:(CGFloat)width
  15. height:(CGFloat)height
  16. {
  17. CGRect rect = CGRectMake(x, y, width, height);
  18. CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
  19. UIImage *image = [UIImage imageWithCGImage:imageRef];
  20. return image;
  21. }
  22. + (UIImage *)fitScreenWithImage:(UIImage *)image
  23. {
  24. CGSize newSize;
  25. BOOL min = image.size.height>image.size.width;
  26. if (min && image.size.width<SCREEN_WIDTH) {
  27. CGFloat scale = SCREEN_WIDTH/image.size.width;
  28. newSize = CGSizeMake(SCREEN_WIDTH, image.size.height*scale);
  29. }else if (min && image.size.width >= SCREEN_WIDTH){
  30. CGFloat scale = SCREEN_WIDTH/image.size.width;
  31. newSize = CGSizeMake(SCREEN_WIDTH, image.size.height*scale);
  32. }else{
  33. CGFloat scale = SCREEN_WIDTH/image.size.height;
  34. newSize = CGSizeMake(image.size.width * scale, SCREEN_WIDTH);
  35. }
  36. image = [self imageWithImageSimple:image scaledToSize:newSize];
  37. return image;
  38. }
  39. @end