GPUImageiOSBlurFilter imageByFilteringImage:返回nil

时间:2014-04-02 11:35:47

标签: ios gpuimage

花了一些时间,并不能真正理解问题出在哪里。

我正在使用GPUImage 0.1.3(来自CocoaPods),并且代码非常简单:

GPUImageiOSBlurFilter *iosBlur = [[GPUImageiOSBlurFilter alloc] init];
UIImage *splashScreenImage = [UIImage imageNamed:@"Splash"];
UIImage *bluredImage = [iosBlur imageByFilteringImage:splashScreenImage];

bluredImage是零。 我逐步完成了代码,iosBlur并不是没有,splashScreenImage并没有包含正确的图像(在调试器的快速查看中查看)。所以我不知道问题出在哪里。

2 个答案:

答案 0 :(得分:1)

这是我如何解决它 - 原油,但有效。 顺便说一句 - 这仍然发生在最新的GPUImage代码中,尽管我主要在模拟器中看到这个问题。

    int errorCount = 0;
    UIImage *blurImage;
    //Loop workaround for some unknown GPUImage issue where sometimes the result is nil.
    while (! (blurImage = [imageFilter imageByFilteringImage:image]) ) {
        ++errorCount;
    }

    if (errorCount > 0) {
        NSLog(@"GPUImageiOSBlurFilter imageByFilteringImage error count: %i", errorCount);
    }

答案 1 :(得分:0)

来自GPUImageOutput.h

// Platform-specific image output methods
// If you're trying to use these methods, remember that you need to set -useNextFrameForImageCapture 
// before running -processImage or running video and calling any of these methods, 
// or you will get a nil image
#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
- (UIImage *)imageByFilteringImage:(UIImage *)imageToFilter;