一个用于在像素级别处理颜色的 Swift 6 包。PixelColor
结构体提供了实用工具,用于定义、操作和转换具有 red
、green
、blue
和 opacity
通道 (CGFloat
) 的颜色。
red
、green
、blue
和 opacity
通道。hue
、saturation
和 brightness
(HSB) 表示。Angle
(.hueAngle
)。hex
字符串初始化颜色。.red
、.green
、.blue
、.orange
、.teal
等。.rawRed
、.rawYellow
、.rawGreen
等。.clearWhite
)。.primary
、.background
),可以响应浅色/深色外观模式。+
、-
、*
、/
) 用于混合和缩放颜色。!
用于反转颜色。PixelColor
转换为 SwiftUI 的 Color
或平台特定的 UIColor
/NSColor
,以及从它们转换而来。.random()
) 或随机的完全饱和色调 (.randomHue()
)。.isPureChannel
)。将以下依赖项添加到你的 Package.swift
文件中
dependencies: [
.package(url: "https://github.com/heestand-xyz/PixelColor", from: "3.0.0")
]
然后,在你的代码中导入 PixelColor
import PixelColor
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
let color = PixelColor(hue: 0.5, saturation: 1.0, brightness: 1.0, opacity: 1.0)
let shiftedColor = color.shiftHue(by: .degrees(180))
let brighterColor = color.brighten(by: 1.5)
let semiTransparentColor = color.withOpacity(of: 0.5)
请注意,
PixelColor
不管理颜色空间,这些函数仅为了方便起见。
let linearColor = color.sRGBToLinear()
let srgbColor = linearColor.linearToSRGB()
let swiftUIColor: Color = color.color
let uiColor: UIColor = color.uiColor
/// macOS only
let nsColor: NSColor = color.nsColor
let blendedColor = color1 + color2
let invertedColor = !color
let scaledColor = color * 0.8
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 开发