ios - CIColor 到 UIColor -> CIColor 没有为 UIColor UIExtendedSRGBColorSpace 定义

标签 ios swift uicolor color-space

我正在尝试从 rgb-hex 色彩空间实现 CIColor,如下所示:

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

但是,我不断遇到以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -CIColor not defined for the UIColor UIExtendedSRGBColorSpace 0.921569 0.980392 1 1; need to first convert colorspace.'

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

最佳答案

这会起作用:

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

我找到的答案和解释in this related question .

关于ios - CIColor 到 UIColor -> CIColor 没有为 UIColor UIExtendedSRGBColorSpace 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816422/

相关文章:

swift - 快速存储非文字枚举值

ios - 文本更改时 UILabel 文本颜色更改

ios - Azure Devops Apple App Store 版本。属性 'whatsNew' 缺少值

ios - 如何在 UITableView 周围画线

arrays - 以编程方式在数组中设置按钮标题

ios - 打开模块 'Swift' : Permission denied 的导入文件

swift - 为什么只有内置的 UIColors 在这里工作?

ios - UITableView 中的 UITapGestureRecognizer - 第一个单元格被点击手势忽略

ios - 检索不带前导零的当前日期

swift - 创建加载图像/事件指示器,直到图像快速显示在屏幕上