Skip to content

joshdk/quantize

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
cmd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

License GoDoc Go Report Card CircleCI CodeCov

Quantize

🎨 Simple color palette quantization using MMCQ

Installing

You can fetch this library by running the following

go get -u github.com/joshdk/quantize

Usage

import (
	"image/color"
	"image/jpeg"
	"net/http"
	"github.com/joshdk/preview"
	"github.com/joshdk/quantize"
)

// Fetch the source image
resp, err := http.Get("https://blog.golang.org/gopher/plush.jpg")
if err != nil {
	panic(err.Error())
}

// Decode jpeg contents
img, err := jpeg.Decode(resp.Body)
if err != nil {
	panic(err.Error())
}

// Reduce image into a palette of 8 colors
colors := quantize.Image(img, 3)

palette := make([]color.Color, len(colors))
for index, clr := range colors {
	palette[index] = clr
}

// Display our new palette
preview.Show(palette)

As an example, we can reduce a photo of the Go Gopher (source) into a color palette.

gopher

License

This library is distributed under the MIT License, see LICENSE.txt for more information.