Sto provando a eseguire una sfocatura gaussiana su una UIImage che replica il mio mockup di photoshop.Sfocatura UIImmagine fuori dai limiti (stile Photoshop)
comportamento desiderato: In Photoshop, quando si esegue un filtro sfocatura gaussiana, il livello dell'immagine diventa più grande a causa dei bordi sfocati.
Comportamento osservato: Utilizzo di GPUImage, riesco a sfocare correttamente i miei UIImages. Tuttavia, la nuova immagine viene ritagliata ai limiti originali, lasciando un bordo duro tutto intorno.
L'impostazione UIImageView.layer.masksToBounds = NO;
non aiuta, poiché l'immagine è ritagliata non vista.
Ho anche provato a mettere l'UIImage centrato su un'immagine più grande e trasparente prima di sfocare e quindi ridimensionare. Anche questo non ha aiutato.
C'è un modo per ottenere questa sfocatura in stile "Photoshop"?
UPDATE soluzione di lavoro grazie a Brad Larson:
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 desired blur filter
[blurFilter setBlurSize:3.0f];
[blurFilter setBlurPasses:20];
//Chain Image->Transform->Blur->Output
[imageSource addTarget:transformFilter];
[transformFilter addTarget:blurFilter];
[imageSource processImage];
UIImage *blurredImage = [blurFilter imageFromCurrentlyProcessedOutputWithOrientation:UIImageOrientationUp];
Quando "hai provato a mettere l'UIImage centrato su un'immagine chiara più grande prima di sfocare", vuoi dire che hai unito l'immagine originale a una UII più grande, quindi è un'immagine? Se è così, prova a usare un'immagine bianca invece di un'immagine chiara e assicurati che l'immagine bianca abbia un canale alfa. Sospetto che l'immagine chiara non abbia alfa e quindi il risultato sembra tagliato. – bobnoble