https://github.com/mawngo/kcomp
K-means color quantization
https://github.com/mawngo/kcomp
color-quantization command-line-tool k-means
Last synced: 4 months ago
JSON representation
K-means color quantization
- Host: GitHub
- URL: https://github.com/mawngo/kcomp
- Owner: mawngo
- License: mit
- Created: 2024-05-05T13:44:45.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-17T10:46:45.000Z (5 months ago)
- Last Synced: 2025-02-17T11:33:38.493Z (5 months ago)
- Topics: color-quantization, command-line-tool, k-means
- Language: Go
- Homepage:
- Size: 51.8 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# K-Compressor
Reduce the number of colors used in image using k-mean clustering.
## Installation
Require go 1.22+
```shell
go install github.com/mawngo/kcomp@latest
```## Usage
compress image
```shell
> kcomp .\my-image.jpeg
```or compress directory of images
```shell
> kcomp .\my-dir
```### Options
```
> kcomp -h
Reduce number of colors used in imageUsage:
kcomp [files...] [flags]
Flags:
-n, --colors int Number of colors to use (default 15)
-o, --out string Output directory name (default ".")
-s, --series int Number of image to generate, series of output with increasing number of colors up util reached --colors parameter [min:1] (default 1)
-q, --quick Increase speed in exchange of accuracy
-w, --overwrite Overwrite output if exists
-i, --round int Maximum number of round before stop adjusting (number of kmeans iterations) (default 100)
-d, --delta float Delta threshold of convergence (delta between kmeans old and new centroid’s values) (default 0.005)
-t, --concurrency int Maximum number image process at a time [min:1] (default 8)
--dalgo string Distance algo for kmeans [EuclideanDistance,EuclideanDistanceSquared] (default "EuclideanDistance")
--jpeg int Specify quality of output jpeg compression [0-100] (set to 0 to output png)
--debug Enable debug mode
-h, --help help for kcomp
```## Examples
```shell
> kcomp .\chika.jpeg --colors=5
``````shell
10:46PM INF Processing cp=5 round=100 img=chika.jpeg dimension=200x200 format=jpeg
10:46PM INF Compress completed out=chika.100cp5.png took=60.239ms
10:46PM INF Processing completed.
```| Original | 5 Colors | 4 Colors |
|---------------------------|---------------------------------------|---------------------------------------|
|  |  |  |