-(UIImage*)imageByScalingAndCroppin
{
UIImage *sourceImage =img;
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;
原文地址:http://gaohaijun.blog.163.com/blog/static/176698271201192325646792
// center the image
if (widthFactor >heightFactor)
{
thumbnailPoint.y =(targetHeight - scaledHeight) * 0.5;
}
else if (widthFactor< heightFactor)
{
thumbnailPoint.x =(targetWidth - scaledWidth) * 0.5;
}
}
UIGraphicsBeginImageCont
CGRect thumbnailRect =CGRectZero;
thumbnailRect.origin =thumbnailPoint;
thumbnailRect.size.width= scaledWidth;
thumbnailRect.size.height = scaledHeight;
[sourceImagedrawInRect:thumbnailRect];
newImage =UIGraphicsGetImageFromCu
if(newImage == nil)
NSLog(@"could not scaleimage");
//pop the context toget back to the default
UIGraphicsEndImageContex
return newImage;
}