0

我在使用以下代码时遇到问题;

//get a CIImage
UIImage *origImage  = [UIImage imageNamed:imageName];
CIImage *inputImage = [[CIImage alloc] initWithImage:origImage];

NSLog(@"the inputImage is %@", imageName);

imageName 是一个 NSString 属性,并且总是正确记录。在我的项目中,如果我在 CIImage 行之后放置一个断点,我会得到 UIImage,但不会得到 CIImage。另外,我注意到一些 uiimage 属性看起来很奇怪(比例总是很小,例如 0.0000002 和 _imageFlags 似乎是空的)。我最近在一个单独的项目中构建了代码,它工作正常(CIImage 已创建并可用于 CIFiltering 等),但不在此项目中。项目之间的唯一区别是原始(有问题的)项目有一个 OpenGLES 实现,而新项目只使用 CoreImage。旧项目也是从 iOS 6 SDK 创建的,新项目是从 iOS 8 SDK 创建的。我尝试了其他一些创建 CIImage 的方法(origimage.ciimage 和通过 origimage.cgimage),但都没有奏效。

任何想法表示赞赏。

谢谢,邓加。

4

1 回答 1

0

我已经解决了这个问题。项目的 LLVM 6.0 代码生成设置,如果设置了任何优化级别(即 > 无),则无法分配 CIImages。因此它在一个项目中起作用,但在另一个项目中不起作用。

于 2014-09-16T19:46:26.390 回答