Skip to content

Instantly share code, notes, and snippets.

@syshen
Created January 12, 2013 09:31
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save syshen/4516930 to your computer and use it in GitHub Desktop.
Save syshen/4516930 to your computer and use it in GitHub Desktop.
core image crop and resize
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