首先添加 <CoreImage/CoreImage.h>
int origImageW = 300;
int newImageW = 120;
//裁剪
NSURL * url = [NSURL fileURLWithPath:imagePath];
CIImage * currImage = [CIImage imageWithContentsOfURL:url];
CGSize sz = [currImage extent].size;
CGRect cropRect = CGRectMake((sz.width - origImageW)/2.0, (sz.height - origImageW)/2.0, origImageW, origImageW);
CIImage * cropImage = [currImage imageByCroppingToRect:cropRect];
//缩放,矩阵可以实现旋转、拉伸等功能
CIFilter * filter = [CIFilter filterWithName:@"CIAffineTransform"];
[filter setValue:cropImage forKeyPath:kCIInputImageKey];
CGAffineTransform affineTf = CGAffineTransformScale(CGAffineTransformIdentity, newImageW/origImageW, newImageW/origImageW);
[filter setValue:[NSValue valueWithCGAffineTransform:affineTf] forKeyPath:@"inputTransform"];
CIImage * newImage = [filter valueForKeyPath:kCIOutputImageKey];
NSLog(@"%@",NSStringFromCGRect([newImage extent]));
//生成新的UIImage
CIContext * context = [CIContext contextWithOptions:nil];
CGImageRef cgImg = [context createCGImage:newImage fromRect:CGRectMake(0, 0, newImageW, newImageW)];
UIImage * targetCropImage = [UIImage imageWithCGImage:cgImg];