https://github.com/blenderskool/pigmnts
🎨 Color palette generator from an image using WebAssesmbly and Rust
https://github.com/blenderskool/pigmnts
color-palette color-quantization kmeans pigments rust wasm web-assembly
Last synced: 4 months ago
JSON representation
🎨 Color palette generator from an image using WebAssesmbly and Rust
- Host: GitHub
- URL: https://github.com/blenderskool/pigmnts
- Owner: blenderskool
- License: mit
- Created: 2019-10-10T12:14:28.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-24T23:44:44.000Z (over 2 years ago)
- Last Synced: 2025-03-06T07:49:42.997Z (4 months ago)
- Topics: color-palette, color-quantization, kmeans, pigments, rust, wasm, web-assembly
- Language: Rust
- Homepage: https://pigmnts.web.app
- Size: 328 KB
- Stars: 75
- Watchers: 3
- Forks: 5
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 🎨 Pigmnts
Pigmnts is a color palette creator from an image built using Rust. It uses the [K-means++](https://en.wikipedia.org/wiki/K-means%2B%2B) clustering algorithm to select the most commonly occurring colors from the image.**Pigmnts library** is compiled to WebAssembly which allows for super-fast color palette extraction from an image on the web.
The library can be found in the `lib` directory.## Pigmnts CLI
Pigmnts CLI is a tool designed to create color palettes from an image right on your terminal. It supports various image formats like `JPEG`, `PNG`, `GIF`, `WebP`, `TIFF` along with external HTTP(S) image URLs. It provides a beautiful terminal output to preview the colors in the palette.Pigmnts CLI comes with various output modes and provides on-demand data of the palette generated while maintaining high speeds.
### Installing the CLI
CLI can be installed using `cargo` and `pigmnts-cli` crate on crates.io
```bash
cargo install pigmnts-cli
```### Output modes
#### Default mode
The default mode displays the palette in a user-friendly way with a small preview and corresponding color codes in a tabular structure. This is meant for the common use of the CLI.
### Quiet (or Silent) mode
This mode displays only the essential output without the intermediate logs. The output is in plain text format with each data item separated by `:`. This is meant for use in a pipeline where the output of the CLI is used as input for another process. It can be activated by the `-q or --quiet` flag.
### Flags and options in the CLI
The following flags and options are supported by the latest release of the CLI.
```
FLAGS:
-d, --dominance Enable dominance percentage of colors
-h, --help Prints help information
-x, --hex Enable Hex code output of colors
-s, --hsl Enable HSL output of colors
-l, --lab Enable L*AB output of colors
-q, --quiet Suppress the normal output [aliases: silent]
-r, --rgb Enable RGB output of colors
-n, --name Nearest name for the color
-V, --version Prints version informationOPTIONS:
-c, --count ... Number of colors in the palette
```#### Examples of these flags
- `pigmnts pic-1.jpg -c 5 pic-2.jpg -c 8`
Generate a palette of 5 colors from pic-1.jpg and 8 colors from pic-2.jpg.- `pigmnts pic-1.jpg -rxdl`
Generate a palette of 5 colors from pic-1.jpg and show the RGB code, hex code, dominance, LAB code for each color in the palette.- `pigmnts pic-1.jpg --count 10 --name --hex`
Generate a palette of 10 colors from pic-1.jpg and show the name, hex code for each color in the palette.- `pigmnts pic-1.jpg pic-2.jpg -sxq`
Generate a palette of 5 colors from pic-1.jpg and pic-2.jpg. For each color in the palette show the HSL code, hex code in `quiet` mode.## Contributing
This repository is a Cargo workspace that includes the development of both core Pigmnts library and the CLI.### Project Structure
- **Pigmnts Library** - development of the core library is in the `lib` directory.
- **Pigmnts CLI** - root project is Pigmnts CLI that uses the Pigmnts library.## License
Pigmnts is [MIT Licensed](https://github.com/blenderskool/pigmnts/blob/master/LICENSE.md)
The dataset for color names used in Pigmnts CLI is taken from https://github.com/meodai/color-names