UIImage+Setter.m 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // UIImage+resize.m
  3. // test23
  4. //
  5. // Created by apple on 15/12/1.
  6. // Copyright (c) 2015年 JCZ. All rights reserved.
  7. //
  8. #import "UIImage+Setter.h"
  9. @implementation UIImage(Setter)
  10. -(UIImage *)reduceImage:(UIImage *)image percent:(float)percent
  11. {
  12. NSData *imageData = UIImageJPEGRepresentation(image, percent);
  13. UIImage *newImage = [UIImage imageWithData:imageData];
  14. return newImage;
  15. }
  16. //压缩图片尺寸
  17. - (UIImage*)scaledToSize:(CGSize)newSize
  18. {
  19. //首先要找到缩放比?
  20. CGFloat rate =newSize.width*1.0/ self.size.width ;
  21. if (self.size.height* rate > newSize.height) {
  22. //过长了。
  23. rate =newSize.height*1.0/ self.size.height ;
  24. }
  25. CGSize size = CGSizeMake(self.size.width*rate, self.size.height*rate);
  26. // Create a graphics image context
  27. UIGraphicsBeginImageContext(size);
  28. // new size
  29. [self drawInRect:CGRectMake(0,0,size.width,size.height)];
  30. // Get the new image from the context
  31. UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  32. // End the context
  33. UIGraphicsEndImageContext();
  34. // Return the new image.
  35. return newImage;
  36. }
  37. - (UIImage*)scaledToWid:(CGFloat)width
  38. {
  39. //首先要找到缩放比?
  40. CGFloat rate =width*1.0/ self.size.width ;
  41. if (self.size.height* rate > width) {
  42. //过长了。
  43. rate =width*1.0/ self.size.height ;
  44. }
  45. CGSize size = CGSizeMake(self.size.width*rate, self.size.height*rate);
  46. UIGraphicsBeginImageContext(size);
  47. [self drawInRect:CGRectMake(0,0,size.width,size.height)];
  48. UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  49. UIGraphicsEndImageContext();
  50. return newImage;
  51. }
  52. /**
  53. * 修改图片的大小
  54. */
  55. -(UIImage*)originImageScaleToSize:(CGSize)size
  56. {
  57. UIGraphicsBeginImageContext(size); //size 为CGSize类型,即你所需要的图片尺寸
  58. [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
  59. UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
  60. UIGraphicsEndImageContext();
  61. return scaledImage; //返回的就是已经改变的图片
  62. }
  63. #pragma mark - 改变照片颜色
  64. // Tint: Color
  65. -(UIImage*)tint:(UIColor*)color {
  66. return [self rt_tintedImageWithColor:color level:1.0f];
  67. }
  68. // Tint: Color + level
  69. -(UIImage*)rt_tintedImageWithColor:(UIColor*)color level:(CGFloat)level {
  70. CGRect rect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
  71. return [self rt_tintedImageWithColor:color rect:rect level:level];
  72. }
  73. // Tint: Color + Rect
  74. -(UIImage*)rt_tintedImageWithColor:(UIColor*)color rect:(CGRect)rect {
  75. return [self rt_tintedImageWithColor:color rect:rect level:1.0f];
  76. }
  77. // Tint: Color + Rect + level
  78. -(UIImage*)rt_tintedImageWithColor:(UIColor*)color rect:(CGRect)rect level:(CGFloat)level {
  79. CGRect imageRect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
  80. UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, self.scale);
  81. CGContextRef ctx = UIGraphicsGetCurrentContext();
  82. [self drawInRect:imageRect];
  83. CGContextSetFillColorWithColor(ctx, [color CGColor]);
  84. CGContextSetAlpha(ctx, level);
  85. CGContextSetBlendMode(ctx, kCGBlendModeSourceAtop);
  86. CGContextFillRect(ctx, rect);
  87. CGImageRef imageRef = CGBitmapContextCreateImage(ctx);
  88. UIImage *darkImage = [UIImage imageWithCGImage:imageRef
  89. scale:self.scale
  90. orientation:self.imageOrientation];
  91. CGImageRelease(imageRef);
  92. UIGraphicsEndImageContext();
  93. return darkImage;
  94. }
  95. @end