Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 加载CiFilter时出现问题_Image Processing_Core Graphics_Quartz Graphics_Core Image - Fatal编程技术网

Image processing 加载CiFilter时出现问题

Image processing 加载CiFilter时出现问题,image-processing,core-graphics,quartz-graphics,core-image,Image Processing,Core Graphics,Quartz Graphics,Core Image,这个问题可能也与其他首次使用CIFilter的作者有关。 我需要有关更新Mac OS X视频播放器QTKit应用程序(基于QTKitPlayer)以使用CIFilters的建议。我已经阅读了图像单元和核心图像指南。我已经使用[CIPlugIn loadAllPlugIns]成功地让应用程序加载并运行内置的CIFFilter 我还成功地编写了第一个CIFilter,将其包装为图像单元,并将其放入/Library/Graphics/Image单元 我已经用Quartz Composer成功地测试了它

这个问题可能也与其他首次使用CIFilter的作者有关。 我需要有关更新Mac OS X视频播放器QTKit应用程序(基于QTKitPlayer)以使用CIFilters的建议。我已经阅读了图像单元和核心图像指南。我已经使用[CIPlugIn loadAllPlugIns]成功地让应用程序加载并运行内置的CIFFilter

我还成功地编写了第一个CIFilter,将其包装为图像单元,并将其放入/Library/Graphics/Image单元 我已经用Quartz Composer成功地测试了它,它加载并成功运行。我还成功地将其加载到Core Image Fun House中

但是,更改后的QTKitPlayer应用程序不会加载我的CIFilter。断点显示已加载所有内置CIFILTER,但我的筛选器未加载

由于我是编写和使用cifilter的新手,我担心我一定错过了一些核心映像初始化代码,或者QTMovieView nib标志,或者编译器标志,或者其他什么。在调用loadAllPlugins之前,我需要做一些设置工作吗? 代码如下:

[CIPlugIn loadAllPlugIns]; CIFilter*CIFilter=[CIFilter FILTER WITHNAME:@“My扭曲扭曲”]

我检查它是否加载了以下内容:

NSArray*filterList=[CIFilter filterNamesInCategories:[NSArray阵列及其对象:KCicateGory畸变效应]]

在调试过程中,我的CIFilter不会出现在我的QTKitPlayer衍生产品中的filterList中。但是,将相同的代码插入核心映像funhouse src,表明filterList确实包含我的过滤器。FunHouse还将ciFilter设置为过滤器,但我的应用程序只设置为零


我的QTKit应用程序缺少什么,需要加载密码?

您确定要为自定义筛选器使用正确的名称吗

(CIFilter *ciFilter = [CIFilter filterWithName:@"MyDistortionWarp"];)
这必须是类名(
CIFilterClass
),而不是插件(或图像单元)的名称。

谢谢您的回复。 我已经解决了这个问题。 事实证明,这是XCode中的32位与64位构建问题

我的项目被设置为发布版本是32位和64位插件二进制文件。 但是,调试构建通常被设置为只构建“本机”二进制文件。由于项目要么是旧的,要么是修改过的示例代码项目,我花了一段时间才意识到问题出在旧的构建设置中,而不是新修改过的代码中

[CIPlugIn loadAllPlugIns]仅加载与应用程序二进制兼容的插件。因此,32位应用程序不会看到仅为64位构建的CIFilters。而且,64位应用程序不会看到只为32位系统构建的插件。在我的例子中,FunHouse可以加载我的图像单位,而播放器不能。我只需要更改项目的构建设置

一句至理名言——升级到新的Mac电脑后,使用新的OSX和新的XCode,如果您遇到暮光之城问题,请检查您的构建设置