Commit 84352f16 authored by santiaago's avatar santiaago
Browse files

add isogrids gradient route. #67

parent d111d71c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ func main() {
	r.HandleFunc("/themes/:theme", themes.Theme)
	r.HandleFunc("/labs/checkerboard", checkerboard.Checkerboard)
	r.HandleFunc("/labs/squares/random", squares.Random)
	r.HandleFunc("/labs/squares/banner/gradient", squares.BannerGradient)
	r.HandleFunc("/labs/isogrids/hexa", isogrids.Hexa)
	r.HandleFunc("/labs/isogrids/hexa/:key", isogrids.Hexa)
	r.HandleFunc("/labs/isogrids/skeleton", isogrids.Skeleton)
@@ -46,6 +45,9 @@ func main() {
	r.HandleFunc("/labs/isogrids/random", isogrids.Random)
	r.HandleFunc("/labs/isogrids/random-mirror", isogrids.RandomMirror)

	r.HandleFunc("/labs/squares/banner/gradient", squares.BannerGradient)
	r.HandleFunc("/labs/isogrids/banner/gradient", isogrids.BannerGradient)

	r.AddStaticResource(root)

	log.Println("Listening on " + os.Getenv("PORT"))
+44 −0
Original line number Diff line number Diff line
package isogrids

import (
	"image/color"
	"net/http"

	"github.com/taironas/tinygraphs/colors"
	"github.com/taironas/tinygraphs/draw/squares"
	"github.com/taironas/tinygraphs/extract"
	"github.com/taironas/tinygraphs/write"
)

// Gradient handler for "labs/squares/banner/gradient"
// generates a color gradient random grid image.
func BannerGradient(w http.ResponseWriter, r *http.Request) {

	width := extract.Width(r)
	height := extract.Height(r)
	xsquares := extract.XSquares(r)
	numColors := extract.NumColors(r)
	gv := extract.GradientVector(r, uint8(0), uint8(0), uint8(width), uint8(0))

	colorMap := colors.MapOfColorThemes()

	bg, fg := extract.ExtraColors(r, colorMap)

	var colors, gColors []color.RGBA
	theme := extract.Theme(r)
	if theme != "base" {
		if _, ok := colorMap[theme]; ok {
			colors = append(colors, colorMap[theme][0:numColors]...)
			gColors = colorMap[theme][1:3]
		} else {
			colors = append(colors, colorMap["base"]...)
			gColors = colorMap[theme]
		}
	} else {
		colors = append(colors, bg, fg)
		gColors = []color.RGBA{bg, fg}
	}

	write.ImageSVG(w)
	squares.RandomGradientSVG(w, colors, gColors, gv, width, height, xsquares)
}