2016-02-24 3 views
0

Я недавно столкнулся с проблемой, с которой мне нужна помощь. Я заметил, что если вы используете GPUImageTwoInputFilter или GPUImageThreeInputFilter в GPUImageFilterGroup и применяете это к процессу processImageUpToFilter от GPUImagePicture, итоговое изображение равно Nil.GPUImage Multiple Input Filters

Я проследил проблему к методу newCGImageFromCurrentlyProcessedOutput GPUImageFilter, в частности, следующие строки кода

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

фильтр группы я настроен как

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

Я сначала подумал, что это может быть проблемой в мой пользовательский фильтр, но это также верно в GPUImageSoftEleganceFilter.

Любая помощь была бы принята с благодарностью.

ответ

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];