iOS 图片裁剪 缩放

来源:互联网 发布:程序员专用电脑壁纸 编辑:程序博客网 时间:2024/05/24 15:39

首先添加 <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.0origImageWorigImageW);

                CIImage * cropImage = [currImage imageByCroppingToRect:cropRect];

                

//缩放,矩阵可以实现旋转、拉伸等功能

                CIFilter * filter = [CIFilter filterWithName:@"CIAffineTransform"];

                [filter setValue:cropImage forKeyPath:kCIInputImageKey];

                CGAffineTransform  affineTf = CGAffineTransformScale(CGAffineTransformIdentity, newImageW/origImageWnewImageW/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(00newImageWnewImageW)];

                UIImage * targetCropImage = [UIImage imageWithCGImage:cgImg];

0 0