我在下面的代码中遇到了问题;
//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),但都不起作用。
任何想法都很感谢。
谢谢,邓加。
发布于 2014-09-17 03:46:26
我已经解决了这个问题。项目的LLVM6.0代码生成设置,如果设置了任何优化级别(即>无),则无法分配CIImages。因此,它在一个项目中有效,但在另一个项目中无效。
https://stackoverflow.com/questions/25704380
复制相似问题