【发布时间】:2011-05-24 17:11:51
【问题描述】:
这个问题也可能与其他第一次使用 CIFilter 的作者有关。 我需要有关更新 Mac OS X 的视频播放器 QTKit 应用程序(基于 QTKitPlayer)以使用 CIFilters 的建议。我已经阅读了图像单元和核心图像指南。我已经使用 [CIPlugIn loadAllPlugIns] 成功让应用程序加载和运行内置 CIFilters。
我还成功编写了我的第一个 CIFilter,将其包装为图像单元,并将其放入 /Library/Graphics/Image Units 我已经用 Quartz Composer 成功地测试了它,它加载并成功运行。我在Core Image Fun House也成功加载了。
但是,更改后的 QTKitPlayer 应用程序不会加载我的 CIFilter。断点显示所有内置 CIFilter 都已加载,但我的过滤器没有。
由于我是编写和使用 CIFilters 的新手,我担心我一定错过了一些 Core Image 初始化代码、QTMovieView nib 标志、编译器标志等。在调用 loadAllPlugins 之前我需要做任何设置吗? 代码如下:
[CIPlugIn loadAllPlugIns]; CIFilter *ciFilter = [CIFilter filterWithName:@"MyDistortionWarp"];
我检查它是否加载:
NSArray *filterList = [CIFilter filterNamesInCategories:[NSArray arrayWithObject:kCICategoryDistortionEffect]];
在调试期间,我的 CIFilter 没有出现在我的 QTKitPlayer 衍生产品的 filterList 中。但是,将相同的代码插入到 Core Image Fun House src 中,表明 filterList 确实包含我的过滤器。 FunHouse 还将 ciFilter 设置为过滤器,但我的应用只设置为 Nil。
我的 QTKit 应用缺少什么,它需要加载 CIPlugin?
【问题讨论】:
标签: image-processing core-graphics quartz-graphics core-image