2014-09-06 84 views
0

我遇到以下代码的问题;UIImage imagenamed:以CIImage不一致的结果

//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)的其他方法,但都没有工作。

任何想法赞赏。

谢谢, 邓加。

回答

0

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