我試圖在複製我的photoshop模型的UIImage上做高斯模糊。模糊界限之外的UIImage(Photoshop風格)
希望的行爲: 在Photoshop中,當我運行高斯模糊濾鏡時,由於邊緣模糊,圖像層變大。
觀察到的行爲:使用GPUImage,我可以成功地模糊我的UIImages。但是,新圖像在原始邊界處裁剪,從而留下了一個硬邊緣。
設置UIImageView.layer.masksToBounds = NO;
沒有幫助,因爲圖像被裁剪而不是視圖。
我也嘗試將UIImage放在較大的清晰圖像上,然後調整大小。這也沒有幫助。
有沒有辦法實現這種「Photoshop風格」模糊?
更新工作方案感謝布拉德·拉森:
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];
當你「試圖將UIImage放在一個更大的清晰圖像中心模糊」之前,你的意思是你將原始圖像合併成一個更大的UIImage,所以它是一個圖像?如果是這樣,請嘗試使用白色圖像而不是清晰圖像,並確保白色圖像具有Alpha通道。我懷疑清晰的圖像沒有字母,因此結果看起來很剪輯。 – bobnoble