CIColor到UIColor – > CIColor没有为UIColor UIExtendedSRGBColorSpace定义

我试图从rgb-hex颜色空间实现CIColor,如下所示:

let bottomColor = UIColor.init(red: 235/255, green: 250/255, blue: 255/255, alpha: 1.0).ciColor 

但是,我一直在打击以下错误:

由于未捕获的exception“NSInvalidArgumentException”而终止应用程序,原因:'*** -CIColor未定义为UIColor UIExtendedSRGBColorSpace 0.921569 0.980392 1 1; 需要先转换颜色空间。

我不确定这是什么意思。 如何解决这个问题?

这将工作:

 let uiColor = UIColor.init(red: 235.0/255.0, green: 250.0/255.0, blue: 255.0/255.0, alpha: 1.0) let bottomColor = CIColor(color: uiColor) 

您也可以在UIColor上添加一个扩展名:

 extension UIColor { var coreImageColor: CIColor { return CIColor(color: self) } var components: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) { let color = coreImageColor return (color.red, color.green, color.blue, color.alpha) } } 

然后通过以下方式调用它:

 let bottomColor = UIColor.init(red: 235.0/255.0, green: 250.0/255.0, blue: 255.0/255.0, alpha: 1.0).coreImageColor 

我在这个相关的问题中find了答案和解释。

Interesting Posts