UIImage imagenamed:给CIImage带来不一致的结果

时间:2014-09-06 20:19:16

标签: ios uiimage ciimage imagenamed

我遇到以下代码时出现问题;

//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已创建并可用于CIF过滤等),但不在此项目中。项目之间的唯一区别是原始(有问题)项目有OpenGLES实现,而新项目只使用CoreImage。此外,旧项目是从iOS 6 SDK创建的,iOS 6 SDK是iOS 8 SDK中的新项目。 我已经尝试了一些其他创建CIImage的方法(origimage.ciimage和via origimage.cgimage),但都没有。

任何想法都赞赏。

谢谢, 邓加。

1 个答案:

答案 0 :(得分:0)

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