将 GPUImage 框架添加到 IOS 项目

Posted

技术标签:

【中文标题】将 GPUImage 框架添加到 IOS 项目【英文标题】:adding GPUImage framework to IOS project 【发布时间】:2014-10-04 17:43:20 【问题描述】:

尝试中的时间正在变成几天。现在我已经开始工作了,我正在尝试从 Sunset Lake Software 页面过滤实时视频代码的示例。应用程序构建失败,出现以下红色错误:'使用未声明的'thresholdfFilter'

GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
GPUImageFilter *customFilter = [[GPUImageFilter alloc] initWithFragmentShaderFromFile:@"CustomShader"];
GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 768, 1024)];


// problem here
[videoCamera addTarget:thresholdFilter];

[customFilter addTarget:filteredVideoView];

[videoCamera startCameraCapture];

使用 Xcode 6.0.1 并在带有 ios 8.0.2 的 iPad2 上测试应用程序 - 如果需要,我可以发布我如何嵌入框架的屏幕截图。

【问题讨论】:

你试过使用 CocoaPods 吗? @Adam - 太棒了!非常感谢您向我介绍 CocoaPods。我现在已经启动并运行了 GPUImage,没有任何问题。对于其他人,我发现了一个很棒的 YouTube 教程 - youtube.com/watch?v=9_FbAlq2g9o。再次感谢。 完全没问题。我发现 CocoaPods 的那一天改变了我的生活。 【参考方案1】:

首先,不应复制我在最初的博客文章中宣布该框架的代码以与该框架的现代版本一起使用。最初的帖子是两年前写的,并没有反映 API 的当前状态。事实上,我刚刚从原始帖子中删除了所有这些代码,并将人们引导到 GitHub 页面上的最新说明。谢谢提醒。

其次,您在上面描述的问题是您尝试使用名为thresholdFilter 的变量而从未定义过这样的变量。这不是框架的问题,编译器不知道你指的是什么。

第三,上面的代码不能工作还有一个原因:你没有持有你的相机实例。您在本地定义它,而不是将其分配给封装类的实例变量。一旦上述设置方法完成,这将导致 ARC 取消分配该相机,从而导致黑屏或崩溃。您需要创建一个实例变量或属性并将您的相机分配给它,以便对其进行强引用。

【讨论】:

以上是关于将 GPUImage 框架添加到 IOS 项目的主要内容,如果未能解决你的问题,请参考以下文章

GPUImage框架导入到项目中的方法(转载)

iOS中开源框架GPUImage的使用之生成libGPUImage.a文件和创建工程

如何在 iOS 中为正在运行的视频添加动态视觉效果?

iOS:GPUImage强大的图像处理框架

iOS:GPUImage 库和 VBO

无法将 opencv2-2 框架添加到 iOS 项目