-(UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize
{
UIImage*sourceImage=[UIImage imageNamed:@"1"];
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;//scaletofitheight
else
scaleFactor=heightFactor;//scaletofitwidth
scaledWidth=width*scaleFactor;
scaledHeight=height*scaleFactor;
//centertheimage
if(widthFactor>heightFactor)
{
thumbnailPoint.y=(targetHeight-scaledHeight)*0.5;
}
else if(widthFactor<heightFactor)
{
thumbnailPoint.x=(targetWidth-scaledWidth)*0.5;
}
}
UIGraphicsBeginImageContext(targetSize);//thiswillcrop
CGRect thumbnailRect=CGRectZero;
thumbnailRect.origin=thumbnailPoint;
thumbnailRect.size.width=scaledWidth;
thumbnailRect.size.height=scaledHeight;
[sourceImage drawInRect:thumbnailRect];
newImage=UIGraphicsGetImageFromCurrentImageContext();
if(newImage==nil)
NSLog(@"couldnotscaleimage");
//popthecontexttogetbacktothedefault
UIGraphicsEndImageContext();
return newImage;
}
会变模糊 最后也没用到