// // 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