我正在尝试在单个视图中实现亮度,对比度和曝光滤镜,就像在iPhoto应用程序中看到的一样。我试图做同样的组过滤器。但是它显示的是白色屏幕,而不是修改后的图片。这是我应用的代码。
GPUImageFilterGroup *groupFilter = [[GPUImageFilterGroup alloc]init];
GPUImageBrightnessFilter *brightnessFilter = [[GPUImageBrightnessFilter alloc]init];
[brightnessFilter setBrightness:brightnessValue];
GPUImageContrastFilter *contrastFilter = [[GPUImageContrastFilter alloc]init];
[contrastFilter setContrast:contrastValue];
GPUImageExposureFilter *exposureFilter =[[GPUImageExposureFilter alloc]init];
[exposureFilter setExposure:exposureValue];
[groupFilter addFilter:brightnessFilter];
[groupFilter addFilter:contrastFilter];
[groupFilter addFilter:exposureFilter];
GPUImagePicture *stillImage= [[GPUImagePicture alloc]initWithImage:self.imageToModify];
[stillImage addTarget:groupFilter];
[stillImage processImage];
previewPicture.image = [groupFilter imageFromCurrentlyProcessedOutputWithOrientation:self.imageToModify.imageOrientation];
我什至试图将每个单独放置,但仍然显示白色图像。我使用的上述代码正确吗?
我也尝试过使用
GPUImageFilterPipeline
而不是GPUImageFilterGroup
,但仍然存在相同的问题。作为记录,该图像是静止图像而不是实时供稿。
最佳答案
您错过了执行以下操作的一些代码语句。
[brightnessFilter addTarget: contrastFilter];
[contrastFilter addTarget: exposureFilter];
[(GPUImageFilterGroup *) groupFilter setInitialFilters:[NSArray arrayWithObject: brightnessFilter]];
[(GPUImageFilterGroup *) groupFilter setTerminalFilter:exposureFilter];
谢谢
关于ios - GPUImage组过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18011746/