GPUImage多输入过滤器

时间:2016-02-24 06:58:57

标签: objective-c gpuimage

我最近遇到了一个需要帮助的问题,我注意到如果你在GPUImageFilterGroup中使用GPUImageTwoInputFilter或GPUImageThreeInputFilter,并将其应用到GPUImagePicture的processImageUpToFilter,结果图像为Nil。

我已将问题追溯到GPUImageFilter的newCGImageFromCurrentlyProcessedOutput方法,特别是在代码行之后

if (dispatch_semaphore_wait(imageCaptureSemaphore, convertedTimeout) != 0) { return NULL; }

我使用的过滤器组设置为

GPUImagePicture -> Crop Filter -> Custom GPUImageFilterGroup which has a GPUImageThreeInputFilter -> Output

我首先想到它可能在我的自定义过滤器中出现问题,但在GPUImageSoftEleganceFilter中也是如此。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

filterGroup = [[GPUImageFilterGroup alloc] init];

GPUImageWhiteBalanceFilter *filter1 = [[GPUImageWhiteBalanceFilter alloc] init];
filter1.temperature = 12000.0f;
[(GPUImageFilterGroup *)filterGroup addFilter:filter1]; 

GPUImageGammaFilter *filter2 = [[GPUImageGammaFilter alloc] init];
filter2.gamma = 1.0f;
[(GPUImageFilterGroup *)filterGroup addFilter:filter2];

[filter1 addTarget:filter2]; 

[(GPUImageFilterGroup *)filterGroup setInitialFilters:[NSArray arrayWithObject:filter1]];
[(GPUImageFilterGroup *)filterGroup setTerminalFilter:filter2];