一个用于在像素级别处理颜色的 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 开发