花了一些时间,并不能真正理解问题出在哪里。
我正在使用GPUImage 0.1.3(来自CocoaPods),并且代码非常简单:
GPUImageiOSBlurFilter *iosBlur = [[GPUImageiOSBlurFilter alloc] init];
UIImage *splashScreenImage = [UIImage imageNamed:@"Splash"];
UIImage *bluredImage = [iosBlur imageByFilteringImage:splashScreenImage];
bluredImage是零。 我逐步完成了代码,iosBlur并不是没有,splashScreenImage并没有包含正确的图像(在调试器的快速查看中查看)。所以我不知道问题出在哪里。
答案 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;