Desenfocar una image a través del objective-c

Quiero difuminar un UIImage para una aplicación. ¿Alguno de ustedes tiene un método Objective-C para difuminar una image?

Traté de encontrar un método o una técnica, pero no pude encontrar nada. Ayuda por favor !

Puede usar filters de image principales. http://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html

Mira este fragment de https://gist.github.com/betzerra/5988604

// Needs CoreImage.framework - (UIImage *)blurnetworkingImageWithImage:(UIImage *)sourceImage{ // Create our blurnetworking image CIContext *context = [CIContext contextWithOptions:nil]; CIImage *inputImage = [CIImage imageWithCGImage:sourceImage.CGImage]; // Setting up Gaussian Blur CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"]; [filter setValue:inputImage forKey:kCIInputImageKey]; [filter setValue:[NSNumber numberWithFloat:15.0f] forKey:@"inputRadius"]; CIImage *result = [filter valueForKey:kCIOutputImageKey]; /* CIGaussianBlur has a tendency to shrink the image a little, this ensures it matches * up exactly to the bounds of our original image */ CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]]; UIImage *retVal = [UIImage imageWithCGImage:cgImage]; if (cgImage) { CGImageRelease(cgImage); } return retVal; } 

Puede usar UIVisualEffectView con efectos visuales. Inicialice un elemento de visualEffect y effectView que agregue a su vista o imgview donde desee :). También puedes elegir EffectStyles. fragment de código :

 UIVisualEffect *blurEffect; blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *visualEffectView; visualEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffect]; visualEffectView.frame = YourImgView.bounds; [YourImgView addSubview:visualEffectView]; 

Solucion:

 UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; blurEffectView.frame = self.view.bounds; blurEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; //ADD BLUR EFFECT VIEW IN MAIN VIEW [self.view addSubview:blurEffectView]; 

Recomiendo utilizar Storyboard para implementar desenfoque o vitalidad por UIVisualEffectView . Para get más información, consulte mi proyecto de muestra en https://github.com/Vaberer/BlurTransition para demostrar cómo funciona y cómo utilizarlo con autolayout dentro del UIVisualEffect

Swift 2.2:

  func blurnetworkingImage(with sourceImage: UIImage) -> UIImage { let filter = CIFilter(name: "CIGaussianBlur") filter!.setValue(CIImage(image: sourceImage), forKey: kCIInputImageKey) filter!.setValue(0.8, forKey: kCIInputIntensityKey) let ctx = CIContext(options:nil) let cgImage = ctx.createCGImage(filter!.outputImage!, fromRect:filter!.outputImage!.extent) return UIImage(CGImage:cgImage) }