Skip to content

Instantly share code, notes, and snippets.

@pixnbit
Forked from syshen/gist:4516930
Created August 13, 2014 23:30
Show Gist options
  • Save pixnbit/ebdf19f41d23f469d14b to your computer and use it in GitHub Desktop.
Save pixnbit/ebdf19f41d23f469d14b to your computer and use it in GitHub Desktop.
CIFilter *resizeFilter = [CIFilter filterWithName:@"CILanczosScaleTransform"];
[resizeFilter setValue:ciImage forKey:@"inputImage"];
[resizeFilter setValue:[NSNumber numberWithFloat:1.0f] forKey:@"inputAspectRatio"];
[resizeFilter setValue:[NSNumber numberWithFloat:xRatio] forKey:@"inputScale"];
CIFilter *cropFilter = [CIFilter filterWithName:@"CICrop"];
CIVector *cropRect = [CIVector vectorWithX:rect.origin.x Y:rect.origin.y Z:rect.size.width W:rect.size.height];
[cropFilter setValue:resizeFilter.outputImage forKey:@"inputImage"];
[cropFilter setValue:cropRect forKey:@"inputRectangle"];
CIImage *croppedImage = cropFilter.outputImage;
CGImageRef cgImg = [context createCGImage:croppedImage fromRect:[croppedImage extent]];
UIImage *returnedImage = [UIImage imageWithCGImage:cgImg scale:1.0f orientation:UIImageOrientationUp];
CGImageRelease(cgImg);
[resizeFilter setValue:nil forKey:@"inputImage"];
[cropFilter setValue:nil forKey:@"inputImage"];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment