PixelColor

一个用于在像素级别处理颜色的 Swift 6 包。PixelColor 结构体提供了实用工具,用于定义、操作和转换具有 redgreenblueopacity 通道 (CGFloat) 的颜色。


特性


安装

Swift Package Manager (SPM)

将以下依赖项添加到你的 Package.swift 文件中

dependencies: [
    .package(url: "https://github.com/heestand-xyz/PixelColor", from: "3.0.0")
]

然后,在你的代码中导入 PixelColor

import PixelColor

用法

1. 创建颜色

使用 RGB 值

let color = PixelColor(red: 0.5, green: 0.25, blue: 0.75, opacity: 1.0)

使用十六进制字符串

let color = PixelColor(hex: "#FF8000") // Orange
let semiTransparentColor = PixelColor(hexWithOpacity: "#FF800080") // 50% transparent orange

使用 HSB

let color = PixelColor(hue: 0.5, saturation: 1.0, brightness: 1.0, opacity: 1.0)

2. 修改颜色

调整色调

let shiftedColor = color.shiftHue(by: .degrees(180))

调整亮度

let brighterColor = color.brighten(by: 1.5)

调整透明度

let semiTransparentColor = color.withOpacity(of: 0.5)

3. 颜色转换

请注意,PixelColor 不管理颜色空间,这些函数仅为了方便起见。

转换为线性空间

let linearColor = color.sRGBToLinear()

转换为 sRGB 空间

let srgbColor = linearColor.linearToSRGB()

转换为 SwiftUI 或平台颜色

let swiftUIColor: Color = color.color
let uiColor: UIColor = color.uiColor
/// macOS only
let nsColor: NSColor = color.nsColor

4. 运算符

混合颜色

let blendedColor = color1 + color2

反转颜色

let invertedColor = !color

缩放颜色通道

let scaledColor = color * 0.8

5. 实用工具

生成随机颜色

let randomColor = PixelColor.random()
let randomHueColor = PixelColor.randomHue()

检查纯通道

PixelColor.Channel 是 4 个通道的枚举。

if color.hasPureChannel {
    print("Pure channel: \(color.pureChannel!)")
}

当一个通道为 1.0 且其他通道为 0.0 时,颜色具有纯通道。


示例

适应性颜色

let primaryColor = PixelColor.primary // White in dark mode, black in light mode
let backgroundColor = PixelColor.background // Opposite of primary

十六进制转换

let hex = color.hex // "7F3FBF"
let hexWithOpacity = color.hexWithOpacity // "7F3FBFFF"

贡献

欢迎提交 pull request 或打开 issue 以进行改进和功能请求。


许可证

本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。


致谢

Anton Heestand 开发