有人能告诉我为什么UIImage.ciimage为null吗?

28

我发现在IOS中,UIImage可以转换为CIImage。而且UIImage有一个名为CIImage的属性。当我使用UIImage时,UIImage对象不为空,但UIImage.ciimage是空的,为什么?

如果有人能帮助我解答这个问题,非常感谢!请原谅我的愚蠢。


例如,像下面的代码会返回null:

UIImage *image = [UIImage imageNamed:@"test.jpg"];
CIImage *ciImage = image.CIImage

但如果这样,CIImage 不为空:

UIImage *image = [UIImage imageNamed:@"test.jpg"];
CIImage *myImage = [[CIImage alloc] initWithCGImage:image.CGImage options:nil];
1个回答

47

这是因为这个UIImage实际上不是一个CIImage。换句话说,只有当UIImage已经由CIImage支持时(例如因为它是由imageWithCIImage:生成的),UIImage的CIImage才不为空。你不能使用它来将UIImage神奇地转换为CIImage,就像你似乎希望那样。

文档实际上已经非常清楚了。值得一读。


2
@matt,你如何将UIImage转换为CIImage? - brimstone
7
使用CIImage的initWithImage:初始化器。 - matt
3
我发现有时直接从CIImage转换到UIImage并不总是有效的。我将CIImage转换为CGIImage,然后再转换为UIImage,这样就可以正常工作了。 - Munib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接