我正在尝试在单个视图中实现亮度,对比度和曝光滤镜,就像在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/

10-12 20:50