UIImage+HBClass.m 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // UIImage+HBClass.m
  3. // MyTest
  4. //
  5. // Created by weqia on 13-7-30.
  6. // Copyright (c) 2013年 weqia. All rights reserved.
  7. //
  8. #import "UIImage+HBClass.h"
  9. @implementation UIImage (HBClass)
  10. -(UIImage*) getLimitImage:(CGSize) size
  11. {
  12. // 排错
  13. if(size.width==0||size.height==0)
  14. return self;
  15. CGSize imgSize=self.size;
  16. float scale=size.height/size.width;
  17. float imgScale=imgSize.height/imgSize.width;
  18. float width=0.0f,height=0.0f;
  19. if(imgScale<scale&&imgSize.width>size.width){
  20. width=size.width;
  21. height=width*imgScale;
  22. }else if(imgScale>scale&&imgSize.height>size.height){
  23. height=size.height;
  24. width=height/imgScale;
  25. }
  26. UIGraphicsBeginImageContext(CGSizeMake(width, height));
  27. [self drawInRect:CGRectMake(0, 0, width, height)];
  28. UIImage * image= UIGraphicsGetImageFromCurrentImageContext();
  29. UIGraphicsEndImageContext();
  30. return image;
  31. }
  32. -(UIImage*) getClickImage:(CGSize) size
  33. {
  34. // 排错
  35. if(size.width==0||size.height==0)
  36. return self;
  37. CGSize imgSize=self.size;
  38. UIImageOrientation orientation=self.imageOrientation;
  39. CGRect rect;
  40. if(size.height>=imgSize.height&&size.width>=imgSize.width)
  41. return self;
  42. else if(size.height>=imgSize.height&&size.width<imgSize.width)
  43. rect=CGRectMake((imgSize.width-size.width)/2, 0, size.width, imgSize.height);
  44. else if(size.height<imgSize.height&&size.width>=imgSize.width)
  45. rect=CGRectMake(0, (imgSize.height-size.height)/2, imgSize.width, size.height);
  46. else
  47. rect=CGRectMake((imgSize.width-size.width)/2,(imgSize.height-size.height)/2, size.width, size.height);
  48. CGImageRef imgRef=CGImageCreateWithImageInRect(self.CGImage, rect);
  49. return [UIImage imageWithCGImage:imgRef scale:1 orientation:orientation];
  50. }
  51. @end