ColorKit 是你在 iOS 上处理颜色的好帮手。
ColorKit 可以轻松找到图片的主色调。 它返回一个包含图片上最常用颜色的调色板。
let dominantColors = try image.dominantColors()
默认情况下,ColorKit 使用迭代过程来确定图像的主色调。 但它也支持通过 K-均值聚类算法 来实现。 选择最适合你的用例的方法。
ColorKit 允许你从一系列颜色中生成调色板。 它会自动确保基于一些可配置的参数(如对比度)选择最佳颜色。
当与主色调计算结合使用时,此功能特别强大。
let colors = try image.dominantColors()
let palette = ColorPalette(orderedColors: colors, ignoreContrastRatio: true)
以下示例使用调色板来动态匹配文本和背景的颜色,使其与专辑封面相匹配。
要计算图像的平均颜色,只需在 UIImage
实例上调用 averageColor
函数即可。
let averageColor = try image.averageColor()
感知颜色差异/比较是颜色科学中常见的问题。
它简单地包括计算两种颜色在人眼看来有多不同。 这通常被称为 DeltaE。
ColorKit 使比较两种颜色变得轻而易举。
let colorDifference = UIColor.green.difference(from: .white) // 120.34
虽然这可能看起来很简单,但简单地使用 RGB 颜色模型通常会产生对人类感知不准确的结果。 这是因为 RGB 不是感知均匀的。
这是一个突出使用 RGB 颜色模型比较颜色局限性的示例。
正如你所看到的,两种绿色(左)之间的差异被认为大于粉红色和灰色(右)之间的差异。 换句话说,该算法认为粉红色和灰色比两种绿色看起来更相似。
这显然与人眼的期望不符。
幸运的是,ColorKit 提供了算法,可以像人眼一样比较颜色:CIE76、CIE94 和 CIEDE2000。
let colorDifference = UIColor.green.difference(from: .white, using: .CIE94)
这是与上面相同的示例,使用 CIE94 算法。
CIE94 算法成功地意识到两种绿色(左)比粉红色和灰色(右)看起来更接近。
有关颜色差异的更多信息可以在 这里 找到。
要计算两种颜色之间的对比度,只需使用 contrastRatio
函数即可。
let contrastRatio = UIColor.green.contrastRatio(with: UIColor.white)
对比度在显示文本时尤其重要。 为了确保每个人都能阅读,ColorKit 可以轻松地让你遵循 WCAG 2 制定的辅助功能指南。
当你在颜色空间之间转换颜色时,ColorKit 会帮助你。 它们只需作为 UIColor
上的扩展来支持。
支持 CIELAB、XYZ 和 CMYK。
ColorKit 还有很多功能。 这是一个简短的例子列表
let hexValue = UIColor.green.hex
let color = UIColor(hex: "eb4034")
let randomColor = UIColor.random()
let relativeLuminance = UIColor.green.relativeLuminance
let complementaryColor = UIColor.green.complementaryColor
Swift Package Manager 是安装和管理 ColorKit 作为依赖项的最简单方法。
只需在你的 Package.swift
文件中将 ColorKit 添加到你的依赖项中
dependencies: [
.package(url: "https://github.com/Boris-Em/ColorKit.git")
]
或者,你也可以使用 XCode 将 ColorKit 添加到你现有的项目中,方法是使用 File > Swift Packages > Add Package Dependency...
。
ColorKit 也可以手动添加到你的项目中。 从 Github 下载 ColorKit 项目,然后将文件夹 ColorKit/ColorKit
拖放到你的 XCode 项目中。
使用此存储库中包含的 iOS 示例项目来查找 ColorKit 不同功能的综合示例。
欢迎为 ColorKit 做出贡献!
对于错误和功能请求,打开一个 issue。
要为代码库做出贡献,只需提交一个 pull request。
请参阅 License。 你可以自由地进行更改,并在个人或商业项目中使用它。 不需要署名,但非常感谢。 一句“谢谢!”(或类似的话)总是受欢迎的。 如果你在你的项目中使用了 ColorKit,请告诉我们!