123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- //
- // UIImage+resize.m
- // test23
- //
- // Created by apple on 15/12/1.
- // Copyright (c) 2015年 JCZ. All rights reserved.
- //
- #import "UIImage+Setter.h"
- @implementation UIImage(Setter)
- -(UIImage *)reduceImage:(UIImage *)image percent:(float)percent
- {
- NSData *imageData = UIImageJPEGRepresentation(image, percent);
- UIImage *newImage = [UIImage imageWithData:imageData];
- return newImage;
- }
- //压缩图片尺寸
- - (UIImage*)scaledToSize:(CGSize)newSize
- {
- //首先要找到缩放比?
- CGFloat rate =newSize.width*1.0/ self.size.width ;
- if (self.size.height* rate > newSize.height) {
- //过长了。
- rate =newSize.height*1.0/ self.size.height ;
- }
- CGSize size = CGSizeMake(self.size.width*rate, self.size.height*rate);
-
- // Create a graphics image context
- UIGraphicsBeginImageContext(size);
- // new size
- [self drawInRect:CGRectMake(0,0,size.width,size.height)];
- // Get the new image from the context
- UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
-
- // End the context
- UIGraphicsEndImageContext();
- // Return the new image.
- return newImage;
- }
- - (UIImage*)scaledToWid:(CGFloat)width
- {
- //首先要找到缩放比?
- CGFloat rate =width*1.0/ self.size.width ;
- if (self.size.height* rate > width) {
- //过长了。
- rate =width*1.0/ self.size.height ;
- }
- CGSize size = CGSizeMake(self.size.width*rate, self.size.height*rate);
- UIGraphicsBeginImageContext(size);
- [self drawInRect:CGRectMake(0,0,size.width,size.height)];
- UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return newImage;
- }
- /**
- * 修改图片的大小
- */
- -(UIImage*)originImageScaleToSize:(CGSize)size
- {
- UIGraphicsBeginImageContext(size); //size 为CGSize类型,即你所需要的图片尺寸
-
- [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
-
- UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
-
- UIGraphicsEndImageContext();
-
- return scaledImage; //返回的就是已经改变的图片
- }
- #pragma mark - 改变照片颜色
- // Tint: Color
- -(UIImage*)tint:(UIColor*)color {
- return [self rt_tintedImageWithColor:color level:1.0f];
- }
- // Tint: Color + level
- -(UIImage*)rt_tintedImageWithColor:(UIColor*)color level:(CGFloat)level {
- CGRect rect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
- return [self rt_tintedImageWithColor:color rect:rect level:level];
- }
- // Tint: Color + Rect
- -(UIImage*)rt_tintedImageWithColor:(UIColor*)color rect:(CGRect)rect {
- return [self rt_tintedImageWithColor:color rect:rect level:1.0f];
- }
- // Tint: Color + Rect + level
- -(UIImage*)rt_tintedImageWithColor:(UIColor*)color rect:(CGRect)rect level:(CGFloat)level {
- CGRect imageRect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
-
- UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, self.scale);
- CGContextRef ctx = UIGraphicsGetCurrentContext();
-
- [self drawInRect:imageRect];
-
- CGContextSetFillColorWithColor(ctx, [color CGColor]);
- CGContextSetAlpha(ctx, level);
- CGContextSetBlendMode(ctx, kCGBlendModeSourceAtop);
- CGContextFillRect(ctx, rect);
-
- CGImageRef imageRef = CGBitmapContextCreateImage(ctx);
- UIImage *darkImage = [UIImage imageWithCGImage:imageRef
- scale:self.scale
- orientation:self.imageOrientation];
- CGImageRelease(imageRef);
-
- UIGraphicsEndImageContext();
-
- return darkImage;
- }
- @end
|