vibrant
vibrant copied to clipboard
Extract prominent colors from images. Go port of the Android awesome Palette class aka Vibrant.js.
vibrant
Extract prominent colors from images. Go port of the Android awesome Palette class aka Vibrant.js.
install
go get github.com/dayvonjersen/vibrant
usage
// 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)
}
output:
/* 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.
bonus round
reference implementation/command line tool
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.
webapp
go get github.com/dayvonjersen/vibrant
cd $GOPATH/src/github.com/dayvonjersen/vibrant
go run webapp.go
# open http://localhost:8080/ in a browser
thanks
https://github.com/Infinity/Iris
This Google I/O 2014 presentation
https://github.com/jariz/vibrant.js
https://github.com/akfish/node-vibrant