Question

I want to remove red eye effect form photo but not get any sample can any one help me with working demo code or code snippet?

Thanks.

Was it helpful?

Solution

Use below category of UIImage :

@interface UIImage (Utitlities)
  -(UIImage*)redEyeCorrection;
@end

@implementation UIImage (Utitlities)
  -(UIImage*)redEyeCorrection
  {
    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

Usage: Sample code given below

 UIImage *redEyeImage = [UIImage imageNamed:@"redEye.jpg"];

if (redEyeImage) {
    UIImage *newRemovedRedEyeImage = [redEyeImage redEyeCorrection];
    if (newRemovedRedEyeImage) {
        imgView.image = newRemovedRedEyeImage;
    }
}

Refer NYXImagesKit UIImage Enhancing link

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top