如果我插入此函数,我会收到错误-imageFromCurrentFramebufferWithOrientation - (GPUImageLookupFilter)

时间:2014-04-19 17:30:14

标签: ios cocoa-touch gpuimage

我在实施GPUImageLookupFilter时遇到问题。 我在这行代码中遇到错误:UIImage *adjustedImage = [lookupFilter imageFromCurrentFramebufferWithOrientation];

它说(错误): "No visible @interface for 'GPUImageLookupFilter' declares the selector 'imageFromCurrentFramebufferWithOrientation'"

这是我的代码:

- (IBAction)filter1:(id)sender;
{
GPUImageLookupFilter *lookup = [[GPUImageLookupFilter alloc] init];
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:imgView];

GPUImagePicture *lookupImageSource = [[GPUImagePicture alloc] initWithImage:[UIImage imageNamed:@"lookup_Invert.png"]];
GPUImageLookupFilter *lookupFilter = [[GPUImageLookupFilter alloc] init];
[stillImageSource addTarget:lookupFilter];
[lookupImageSource addTarget:lookupFilter];


[stillImageSource processImage];
[lookupFilter useNextFrameForImageCapture];
[lookupImageSource processImage];

UIImage *adjustedImage = [lookupFilter imageFromCurrentFramebufferWithOrientation];
}

1 个答案:

答案 0 :(得分:1)

首先,请仔细阅读我在the very first page of the project上撰写的文档。在进一步发展之前,通过阅读它可以省去很多麻烦。盲目地从互联网上复制代码并不是构建应用程序的好方法。

正如我在前面提到的my answer中所解释的那样,框架处理帧缓冲区的方式已经发生了变化,因此您发现的大量示例代码现在已经过时了。要使用查找过滤器处理静态图像,您需要在上面触发-useNextFrameForImageCapture之前将-processImage发送到查找过滤器。 -processImage会导致初始图像在链接过滤器操作中级联,您需要告诉最终过滤器,在触发处理之前,您将从中提取图像。

完成后,您可以使用-imageFromCurrentFramebuffer-imageFromCurrentFramebufferWithOrientation:提取图像(请注意后者中的参数,因为上面的代码无法编译)。

同样,在继续进行之前,请先阅读我在GPUImage的GitHub存储库首页上链接的资源以及我之前的答案。你真的应该理解它是如何运作的,这就是为什么我不是在为你提供你需要的代码。