我最近遇到了一个需要帮助的问题,我注意到如果你在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中也是如此。
非常感谢任何帮助。
答案 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];