11 releases (7 breaking)
0.8.1 | Jul 4, 2024 |
---|---|
0.7.0 | Mar 21, 2024 |
0.5.1 | Oct 28, 2023 |
0.3.0 | Jun 13, 2023 |
#527 in Images
615 downloads per month
32KB
355 lines
Okolors
Okolors generates high quality color palettes from an image for your theming needs. It does this by converting the image's pixels to the Oklab color space and then performing k-means clustering. By using a proper color space for color difference and a more accurate clustering algorithm, this helps to ensure that the generated palette is truly representative of the input image.
If you are looking for the CLI application, see the Github page.
Examples
Here are some examples of palettes generated by Okolors (using the default options).
Louvre
Hokkaido
Jewel Changi
Český Krumlov
Lake Mendota
Performance
Okolors is designed with performance in mind and should give fast results for even very large images.
Below are the palette generation times as reported by the CLI application via the --verbose
flag.
4 threads and the default options were used.
Image | Width | Height | Unique Colors | Time (ms) |
---|---|---|---|---|
Louvre | 6056 | 4000 | 616101 | 63 |
Hokkaido | 6000 | 4000 | 576339 | 57 |
Jewel Changi | 6000 | 4000 | 400788 | 48 |
Český Krumlov | 4608 | 3456 | 743552 | 51 |
Lake Mendota | 3839 | 5758 | 467802 | 55 |
Louvre (25%) | 1514 | 1000 | 238332 | 18 |
Hokkaido (25%) | 1500 | 1000 | 262207 | 18 |
Jewel Changi (25%) | 1500 | 1000 | 147678 | 11 |
Český Krumlov (25%) | 1152 | 864 | 294989 | 20 |
Lake Mendota (25%) | 960 | 1440 | 264149 | 18 |
License
Okolors is licensed under either
- the Apache License, Version 2.0 (see LICENSE-APACHE)
- the MIT license (see LICENSE-MIT)
at your option.
Dependencies
~7MB
~146K SLoC