Extract prominent colors from images. Go port of the Android awesome Palette class aka Vibrant.js.
Extract prominent colors from images. Go port of the Android awesome Palette class aka Vibrant.js.
go get github.com/dayvonjersen/vibrant
// example: create css stylesheet from image file
checkErr := func(err error) { if err != nil { panic(err) } }
f, err := os.Open("some_image.jpg")
checkErr(err)
defer f.Close()
img, _, err := image.Decode(f)
checkErr(err)
palette, err := vibrant.NewPaletteFromImage(img)
checkErr(err)
for name, swatch := range palette.ExtractAwesome() {
fmt.Printf("/* %s (population: %d) */\n%s\n\n", name, swatch.Population, swatch)
}
/* LightMuted (population: 253) */
.lightmuted{background-color:#cbc0a2;color:#000000;}
/* DarkMuted (population: 11069) */
.darkmuted{background-color:#5b553f;color:#ffffff;}
/* Vibrant (population: 108) */
.vibrant{background-color:#dfd013;color:#000000;}
/* LightVibrant (population: 87) */
.lightvibrant{background-color:#f4ed7d;color:#000000;}
/* DarkVibrant (population: 2932) */
.darkvibrant{background-color:#917606;color:#ffffff;}
/* Muted (population: 4098) */
.muted{background-color:#a58850;color:#000000;}
See godoc reference for full API.
go get github.com/dayvonjersen/vibrant/cmd/vibrant
usage: vibrant [options] file
options:
-compress
Strip whitespace from output.
-css
Output results in CSS.
-json
Output results in JSON.
-lowercase
Use lowercase only for all output. (default true)
-rgb
Output RGB instead of HTML hex, e.g. #ffffff.
go get github.com/dayvonjersen/vibrant
cd $GOPATH/src/github.com/dayvonjersen/vibrant
go run webapp.go
# open http://localhost:8080/ in a browser
https://github.com/Infinity/Iris
This Google I/O 2014 presentation