在图像中查找主色调。
.package(url: "https://github.com/heestand-xyz/KeyColor", from: "1.0.1")
guard let image = UIImage(named: "My Image") else { return }
let color: Color? = try await image.keyColor()
let colors: [Color] = try await image.keyColors(3)
如果图像是单色的,则不会返回任何颜色。
默认的饱和度和亮度阈值均为 50%。
extension UIImage {
func keyColor(
minSaturation: CGFloat = 0.5,
minBrightness: CGFloat = 0.5,
resolution: CGSize? = CGSize(width: 100, height: 100),
interpolation: Graphic.ResolutionInterpolation = .lanczos
) async throws -> Color?
func keyColors(
_ maxCount: Int,
minSaturation: CGFloat = 0.5,
minBrightness: CGFloat = 0.5,
resolution: CGSize? = CGSize(width: 100, height: 100),
interpolation: Graphic.ResolutionInterpolation = .lanczos
) async throws -> [Color]
}
同时支持 UIImage 和 NSImage。
extension Graphic {
func keyPixelColor(
minSaturation: CGFloat = 0.5,
minBrightness: CGFloat = 0.5,
resolution: CGSize? = CGSize(width: 100, height: 100),
interpolation: Graphic.ResolutionInterpolation = .lanczos
) async throws -> PixelColor?
func keyPixelColors(
_ maxCount: Int,
minSaturation: CGFloat = 0.5,
minBrightness: CGFloat = 0.5,
resolution: CGSize? = CGSize(width: 100, height: 100),
interpolation: Graphic.ResolutionInterpolation = .lanczos
) async throws -> [PixelColor]
}
由 PixelColor 和 AsyncGraphics 提供支持