gpt4 book ai didi

ios - GPUImageGaussianBlurFilter 似乎不适用于分层过滤器

转载 作者:行者123 更新时间:2023-11-29 02:58:55 24 4
gpt4 key购买 nike

我有分层滤镜,它们在我使用的图像中看起来都很棒,但如果我将高斯模糊参数更改得更高或更低,模糊效果没有明显差异。我做错了什么?

这是我的代码:

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,您将源图像都放入其中,然后从中拉出一个图像。您实际上从未将模糊用于那里的任何内容,因此它当然不会影响任何输出。

关于ios - GPUImageGaussianBlurFilter 似乎不适用于分层过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com