Contents

DevKitOrganization/DevColorExtraction

A small Swift package for extracting common colors out of images

Features

  • Extract the most common colors from CGImage using 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