¿Cómo desvanezco las esquinas / bordes / bordes de un UIImageView

No pude encontrar esto en los foros, así que decidí publicar esto.

Tengo un UIImageView con el siguiente código que desvanece las imágenes entre sí.

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [[UIApplication shanetworkingApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; imageNames = [NSArray arrayWithObjects:@"image1.jpg", @"image2.jpg", @"image3.jpg", @"image4.jpg", @"image5.jpg", nil]; imageview.image = [UIImage imageNamed:[imageNames objectAtIndex:0]]; [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(transitionPhotos) userInfo:nil repeats:YES]; // Rounds corners of imageview CALayer *layer = [imageview layer]; [layer setMasksToBounds:YES]; [layer setCornerRadius:5]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void)transitionPhotos{ if (photoCount < [imageNames count] - 1){ photoCount ++; }else{ photoCount = 0; } [UIView transitionWithView:imageview duration:2.0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{imageview.image = [UIImage imageNamed:[imageNames objectAtIndex:photoCount]]; } completion:NULL]; } 

Quiero implementar un código que desvanezca los bordes de mi image.

Sé que puedo usar QuartzCore.framework, pero no pude encontrar una guía sobre cómo lograr el resultado que quiero.

¿Cuál sería el código más corto posible para hacer tal método?

Tenga una image que contenga una máscara (rectángulo borroso en el background transparente):

 UIImage *mask = [UIImage imageNamed:@"mask.png"]; 

crea un maskLayer:

 CALayer *maskLayer = [CALayer layer]; maskLayer.contents = (id)mask.CGImage; maskLayer.frame = imageView.bounds; 

y asignalo como máscara para tu image:

 imageView.layer.mask = maskLayer; 

Editar: puede crear la máscara completamente por código usando las properties de sombra de CALayer . Simplemente juega con shadowRadius y shadowPath :

 CALayer *maskLayer = [CALayer layer]; maskLayer.frame = imageView.bounds; maskLayer.shadowRadius = 5; maskLayer.shadowPath = CGPathCreateWithRoundedRect(CGRectInset(imageView.bounds, 5, 5), 10, 10, nil); maskLayer.shadowOpacity = 1; maskLayer.shadowOffset = CGSizeZero; maskLayer.shadowColor = [UIColor whiteColor].CGColor; imageView.layer.mask = maskLayer; 

Para las esquinas networkingondeadas, debe modificar el código siguiente:

  imageView.layer.cornerRadius = 5; imageView.layer.clipsToBounds = YES; 

También podría intentar usar el marco GPUImage, como se dijo en esta respuesta aquí.

Aquí está el código:

 UIImage sourceImage = ... GPUImagePicture *imageSource = [[GPUImagePicture alloc] initWithImage:sourceImage]; GPUImageTransformFilter *transformFilter = [GPUImageTransformFilter new]; GPUImageFastBlurFilter *blurFilter = [GPUImageFastBlurFilter new]; //Force processing at scale factor 1.4 and affine scale with scale factor 1 / 1.4 = 0.7 [transformFilter forceProcessingAtSize:CGSizeMake(SOURCE_WIDTH * 1.4, SOURCE_WIDTH * 1.4)]; [transformFilter setAffineTransform:CGAffineTransformMakeScale(0.7, 0.7)]; //Setup desinetworking blur filter [blurFilter setBlurSize:3.0f]; [blurFilter setBlurPasses:20]; //Chain Image->Transform->Blur->Output [imageSource addTarget:transformFilter]; [transformFilter addTarget:blurFilter]; [imageSource processImage]; UIImage *blurnetworkingImage = [blurFilter imageFromCurrentlyProcessedOutputWithOrientation:UIImageOrientationUp];