[英]GPUImageGaussianBlurFilter doesn't seem to work with layered filters
我有分層的濾鏡,這些濾鏡在我使用的圖像上看起來都很棒,但是如果我將Gaussian Blur參數更改為較高或較低,則模糊效果沒有明顯的區別。 我究竟做錯了什么 ?
這是我的代碼:
GPUImageView *finalView;
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *topLayer = [UIImage imageNamed:@"Glass.png"];
UIImage *baseLayer = [UIImage imageNamed:@"BasePhoto.png"];
GPUImagePicture *stillImageSourceTop = [[GPUImagePicture alloc] initWithImage:topLayer];
GPUImagePicture *stillImageSourceBottom = [[GPUImagePicture alloc] initWithImage:baseLayer];
GPUImageScreenBlendFilter *screenBlendFilter = [[GPUImageScreenBlendFilter alloc] init];
GPUImageBrightnessFilter *brightnessFilter = [[GPUImageBrightnessFilter alloc] init];
GPUImageContrastFilter *contrastFilter = [[GPUImageContrastFilter alloc] init];
GPUImageSaturationFilter *saturationFilter = [[GPUImageSaturationFilter alloc] init];
GPUImageColorMatrixFilter *colorMatrixFilter = [[GPUImageColorMatrixFilter alloc] init];
GPUImageOpacityFilter *opacityFilter = [[GPUImageOpacityFilter alloc] init];
opacityFilter.opacity = 0;
GPUImageGaussianBlurFilter *blurFilter = [[GPUImageGaussianBlurFilter alloc]init];
blurFilter.texelSpacingMultiplier = 4.0;
blurFilter.blurRadiusInPixels = 200.0;
blurFilter.blurPasses = 4;
[stillImageSourceTop addTarget:brightnessFilter];
[brightnessFilter addTarget:contrastFilter];
[contrastFilter addTarget:saturationFilter];
[saturationFilter addTarget:colorMatrixFilter];
[colorMatrixFilter addTarget:blurFilter];
[blurFilter addTarget:opacityFilter];
[stillImageSourceTop processImage];
[opacityFilter useNextFrameForImageCapture];
UIImage *topLayerImage = [opacityFilter imageFromCurrentFramebuffer];
GPUImagePicture *stillImageSourceTopWithFilters = [[GPUImagePicture alloc] initWithImage:topLayerImage];
[stillImageSourceBottom addTarget:screenBlendFilter];
[stillImageSourceTopWithFilters addTarget:screenBlendFilter];
[screenBlendFilter useNextFrameForImageCapture];
[stillImageSourceBottom processImage];
UIImage *mergedlayeredimage = [screenBlendFilter imageFromCurrentFramebuffer];
[finalImageView setImage:mergedlayeredimage];
}
嗯,那是因為上面的大多數過濾器實際上沒有執行任何操作。 連接的唯一過濾器是screenBlendFilter,將源圖像都放入其中,然后從中拉出一個圖像。 您實際上從來不會對那里的任何東西使用模糊,因此,它當然不會影響輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.