DevKitOrganization/DevColorExtraction
A small Swift package for extracting common colors out of images
Features
- Extract the most common colors from
CGImageusing Core Image’s k-means clustering
- Support for edge-based color extraction (top, left, bottom, right edges) - Configurable number of colors and clustering passes - Results include both colors and their relative weights - Comprehensive test suite with various image scenarios
Usage
import DevColorExtraction
// Extract the 3 most common colors from an entire image let colors = cgImage.mostCommonColors(count: 3)
// Extract colors from specific edges only let edgeColors = cgImage.mostCommonColors(count: 2, edges: [.top, .bottom])
// Customize k-means parameters let preciseColors = cgImage.mostCommonColors(count: 5, passes: 10)
Development Requirements
DevColorExtraction requires a Swift 6.2+ toolchain to build. We only test on Apple platforms. We follow the [Swift API Design Guidelines][SwiftAPIDesignGuidelines]. We take pride in the fact that our public interfaces are fully documented and tested. We aim for overall test coverage over 97%.
[SwiftAPIDesignGuidelines]: https://swift.org/documentation/api-design-guidelines/
Development Setup
To set up the development environment:
1. Run Scripts/install-git-hooks to install git hooks that automatically check code formatting before pushing. 2. Use Scripts/lint to manually check code formatting at any time.
Continuous Integration
DevColorExtraction uses GitHub Actions for continuous integration. The CI pipeline:
- Linting: Automatically checks code formatting on all pull requests using swift format - Testing: Runs tests on iOS, macOS, and tvOS - Coverage: Generates code coverage reports using xccovPretty
Bugs and Feature Requests
Find a bug? Want a new feature? Create a GitHub issue and we’ll take a look.
License
All code is licensed under the MIT license. Do with it as you will.
Package Metadata
Repository: DevKitOrganization/DevColorExtraction
Stars: 0
Forks: 0
Open issues: 0
Default branch: main
Primary language: swift
License: MIT
README: README.md