// // UIImage+Fit.m // redstar // // Created by admin on 15/12/28. // Copyright © 2015年 ZWF. All rights reserved. // #import "UIImage+Fit.h" @implementation UIImage (Fit) //计算适合的大小。并保留其原始图片大小 + (CGSize) fitSize: (CGSize)thisSize inSize: (CGSize) aSize { CGFloat scale; CGSize newsize = thisSize; if (newsize.height && (newsize.height > aSize.height)) { scale = aSize.height / newsize.height; newsize.width *= scale; newsize.height *= scale; } if (newsize.width && (newsize.width >= aSize.width)) { scale = aSize.width / newsize.width; newsize.width *= scale; newsize.height *= scale; } return newsize; } // 返回调整的缩略图 + (UIImage *) image: (UIImage *) image fitInSize: (CGSize) viewsize { // calculate the fitted size CGSize size = [self fitSize:image.size inSize:viewsize]; UIGraphicsBeginImageContext(viewsize); float dwidth = (viewsize.width - size.width) / 2.0f; float dheight = (viewsize.height - size.height) / 2.0f; CGRect rect = CGRectMake(dwidth, dheight, size.width, size.height); [image drawInRect:rect]; UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newimg; } //返回居中的缩略图 + (UIImage *) image: (UIImage *) image centerInSize: (CGSize) viewsize { CGSize size = image.size; UIGraphicsBeginImageContext(viewsize); float dwidth = (viewsize.width - size.width) / 2.0f; float dheight = (viewsize.height - size.height) / 2.0f; CGRect rect = CGRectMake(dwidth, dheight, size.width, size.height); [image drawInRect:rect]; UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newimg; } // 返回填充的缩略图 + (UIImage *) image: (UIImage *) image fillSize: (CGSize) viewsize { CGSize size = image.size; CGFloat scalex = viewsize.width / size.width; CGFloat scaley = viewsize.height / size.height; CGFloat scale = MAX(scalex, scaley); UIGraphicsBeginImageContext(viewsize); CGFloat width = size.width * scale; CGFloat height = size.height * scale; float dwidth = ((viewsize.width - width) / 2.0f); float dheight = ((viewsize.height - height) / 2.0f); CGRect rect = CGRectMake(dwidth, dheight, size.width * scale, size.height * scale); [image drawInRect:rect]; UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newimg; } @end