// // UIImage+Enhancing.m // NYXImagesKit // // Created by @Nyx0uf on 03/12/11. // Copyright 2012 Nyx0uf. All rights reserved. // www.cocoaintheshell.com // #import "UIImage+Enhancing.h" #import @implementation UIImage (NYX_Enhancing) -(UIImage*)autoEnhance { /// No Core Image, return original image if (![CIImage class]) return self; CIImage* ciImage = [[CIImage alloc] initWithCGImage:self.CGImage]; NSArray* adjustments = [ciImage autoAdjustmentFiltersWithOptions:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:kCIImageAutoAdjustRedEye]]; for (CIFilter* filter in adjustments) { [filter setValue:ciImage forKey:kCIInputImageKey]; ciImage = filter.outputImage; } CIContext* ctx = [CIContext contextWithOptions:nil]; CGImageRef cgImage = [ctx createCGImage:ciImage fromRect:[ciImage extent]]; UIImage* final = [UIImage imageWithCGImage:cgImage]; CGImageRelease(cgImage); return final; } -(UIImage*)redEyeCorrection { /// No Core Image, return original image if (![CIImage class]) return self; CIImage* ciImage = [[CIImage alloc] initWithCGImage:self.CGImage]; /// Get the filters and apply them to the image NSArray* filters = [ciImage autoAdjustmentFiltersWithOptions:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:kCIImageAutoAdjustEnhance]]; for (CIFilter* filter in filters) { [filter setValue:ciImage forKey:kCIInputImageKey]; ciImage = filter.outputImage; } /// Create the corrected image CIContext* ctx = [CIContext contextWithOptions:nil]; CGImageRef cgImage = [ctx createCGImage:ciImage fromRect:[ciImage extent]]; UIImage* final = [UIImage imageWithCGImage:cgImage]; CGImageRelease(cgImage); return final; } @end