最近我遇到了一些试图获取UIColor的CIColor属性失败的代码。 UIColor初始化为一个简单的[UIColor blackColor]并试图获得CIColor引发异常。
CIColor *aCIColor = [[UIColor blackColor] CIColor]; //fails
CIColor和UIColor有什么区别?为什么会这样?
答案 0 :(得分:4)
CIColor与UIColor一样,用于表示颜色的通道尺寸。
文档中的差异是:
您将CIColor对象与其他Core Image类结合使用, 比如CIFilter,CIContext和CIImage,就可以利用了 处理图像时内置Core Image滤镜。
来自WWDC 2013:
所以,因为,你知道,而且CIColor不处理色彩空间 不会做CMYK颜色,也不会做模式。
所以,这些都是你将要失去的东西。
如果你认为自己需要那个,那么可能不会 正确的策略。
另一种方式,除了我之前已经回答的问题,你可以通过创建黑色UIColor的CGColor来创建CIColor:
CIColor *color = [CIColor colorWithCGColor:[[UIColor blackColor] CGColor]];
答案 1 :(得分:3)
医生说
使用AppKit颜色对象初始化Core Image颜色对象。
因此,您需要从CIColor
类
NSColor
CIColor *aCIColor = [[CIColor alloc] initWithColor:[NSColor blackColor]];
来自UIColor
框架CIColor
的{{1}}和UIColor
之间的差异,并在 iOS 中使用。来自Doc UIKit
来自UIColor对象表示颜色,有时表示不透明度(alpha值)。 您可以使用UIColor对象存储颜色数据,也可以在绘图期间使用 您可以使用它们来设置当前的填充和描边颜色
Available in iOS 2.0 and later
框架的 CIColor
并在 Mac OSX中使用 CoreImage
CIColor类包含颜色值和颜色空间 颜色值有效。您可以结合使用CIColor对象 与其他Core Image类,如CIFilter,CIContext和 CIImage,利用内置的Core Image过滤器 处理图像。
答案 2 :(得分:0)
试试这个(快速版)
tsconfig.json
obj:
tsconfig.json
答案 3 :(得分:0)
UIImage上CIColor
属性的文档说:
如果未使用核心图像颜色初始化颜色对象,则此属性将引发异常。
因此,如果你想访问UIColor的CIColor,首先需要从CIColor创建它。
另一方面,您可以使用initWithColor:
初始化程序从任何UIColor制作新的CIColor:
CIColor *color = [[CIColor alloc] initWithColor:UIColor.blackColor];