IOS图片压缩的类
jopen
11年前
// // UIImage+UIImageExt.m // MyHomeBuy // // Created by first on 13-9-13. // Copyright (c) 2013年 __MyCompanyName__. All rights reserved. // #import "UIImage+UIImageExt.h" @implementation UIImage (UIImageExt) - (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize; { UIImage *sourceImage = self; UIImage *newImage = nil; CGSize imageSize = sourceImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = targetSize.width; CGFloat targetHeight = targetSize.height; CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0,0.0); if (CGSizeEqualToSize(imageSize, targetSize) == NO) { CGFloat widthFactor = targetWidth / width; CGFloat heightFactor = targetHeight / height; if (widthFactor > heightFactor) scaleFactor = widthFactor; // scale to fit height else scaleFactor = heightFactor; // scale to fit width scaledWidth= width * scaleFactor; scaledHeight = height * scaleFactor; // center the image if (widthFactor > heightFactor) { thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; } else if (widthFactor < heightFactor) { thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; } } UIGraphicsBeginImageContext(targetSize); // this will crop CGRect thumbnailRect = CGRectZero; thumbnailRect.origin = thumbnailPoint; thumbnailRect.size.width= scaledWidth; thumbnailRect.size.height = scaledHeight; [sourceImage drawInRect:thumbnailRect]; newImage = UIGraphicsGetImageFromCurrentImageContext(); //if(newImage == nil) //NSLog(@"could not scale image"); //pop the context to get back to the default UIGraphicsEndImageContext(); return newImage; } @end // // UIImage+UIImageExt.h // MyHomeBuy // // Created by first on 13-9-13. // Copyright (c) 2013年 __MyCompanyName__. All rights reserved. // #import <UIKit/UIKit.h> @interface UIImage (UIImageExt) - (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize; @end