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了答案和解释。