Commit 5305d80d authored by santiaago's avatar santiaago
Browse files

add color grids and start random grids

parent ae47f91c
Loading
Loading
Loading
Loading
+85 −50
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ package main
import (
	"image"
	"image/color"
	"math/rand"
	"strconv"
	"strings"
	//	"image/draw"
@@ -41,78 +42,96 @@ func colorGridHandler(w http.ResponseWriter, r *http.Request) {
		log.Printf("error when extracting permalink id: %v", err)
	} else {
		m := image.NewRGBA(image.Rect(0, 0, 240, 240))
		var c color.RGBA
		var c1, c2 color.RGBA
		if intID == 1 {
			c = color.RGBA{
				uint8(0),
				uint8(144),
				167,
				255}
			c1 = color.RGBA{uint8(0), uint8(144), 167, 255}
			c2 = color.RGBA{uint8(0), uint8(214), 244, 255}
		}
		if intID == 2 {
			c = color.RGBA{
				uint8(232),
				uint8(70),
				134,
				255}
			c1 = color.RGBA{uint8(232), uint8(70), 134, 255}
			c2 = color.RGBA{uint8(181), uint8(181), 181, 255}
		}
		if intID == 3 {
			c = color.RGBA{
				uint8(255),
				uint8(237),
				81,
				255}
			c1 = color.RGBA{uint8(255), uint8(237), 81, 255}
			c2 = color.RGBA{uint8(255), uint8(253), 136, 255}
		}
		if intID == 4 {
			c = color.RGBA{
				uint8(177),
				uint8(192),
				24,
				255}
			c1 = color.RGBA{uint8(177), uint8(192), 24, 255}
			c2 = color.RGBA{uint8(86), uint8(165), 150, 255}
		}
		if intID == 5 {
			c = color.RGBA{
				uint8(208),
				uint8(2),
				120,
				255}
			c1 = color.RGBA{uint8(208), uint8(2), 120, 255}
			c2 = color.RGBA{uint8(255), uint8(0), 118, 255}
		}
		if intID == 6 {
			c = color.RGBA{
				uint8(0),
				uint8(44),
				47,
				255}
			c1 = color.RGBA{uint8(0), uint8(44), 47, 255}
			c2 = color.RGBA{uint8(126), uint8(176), 119, 255}
		}
		if intID == 7 {
			c = color.RGBA{
				uint8(29),
				uint8(24),
				18,
				255}
			c1 = color.RGBA{uint8(29), uint8(24), 18, 255}
			c2 = color.RGBA{uint8(234), uint8(225), 219, 255}
		}
		if intID == 8 {
			c = color.RGBA{
				uint8(33),
				uint8(30),
				26,
				255}
			c1 = color.RGBA{uint8(33), uint8(30), 26, 255}
			c2 = color.RGBA{uint8(176), uint8(209), 194, 255}
		}

		drawGrid6X6(m, c)
		drawGrid6X6(m, c1, c2)
		var img image.Image = m
		writeImage(w, &img)
	}
}

func randomColorGridHandler(w http.ResponseWriter, r *http.Request) {
	intID, err := PermalinkID(r, 2)
	if err != nil {
		log.Printf("error when extracting permalink id: %v", err)
	} else {
		m := image.NewRGBA(image.Rect(0, 0, 240, 240))
		var c1, c2 color.RGBA
		if intID == 1 {
			c1 = color.RGBA{uint8(0), uint8(144), 167, 255}
			c2 = color.RGBA{uint8(0), uint8(214), 244, 255}
		}
		if intID == 2 {
			c1 = color.RGBA{uint8(232), uint8(70), 134, 255}
			c2 = color.RGBA{uint8(181), uint8(181), 181, 255}
		}
		if intID == 3 {
			c1 = color.RGBA{uint8(255), uint8(237), 81, 255}
			c2 = color.RGBA{uint8(255), uint8(253), 136, 255}
		}
		if intID == 4 {
			c1 = color.RGBA{uint8(177), uint8(192), 24, 255}
			c2 = color.RGBA{uint8(86), uint8(165), 150, 255}
		}
		if intID == 5 {
			c1 = color.RGBA{uint8(208), uint8(2), 120, 255}
			c2 = color.RGBA{uint8(255), uint8(0), 118, 255}
		}
		if intID == 6 {
			c1 = color.RGBA{uint8(0), uint8(44), 47, 255}
			c2 = color.RGBA{uint8(126), uint8(176), 119, 255}
		}
		if intID == 7 {
			c1 = color.RGBA{uint8(29), uint8(24), 18, 255}
			c2 = color.RGBA{uint8(234), uint8(225), 219, 255}
		}
		if intID == 8 {
			c1 = color.RGBA{uint8(33), uint8(30), 26, 255}
			c2 = color.RGBA{uint8(176), uint8(209), 194, 255}
		}

		drawRandomGrid6X6(m, c1, c2)
		var img image.Image = m
		writeImage(w, &img)
	}
}
func grid6X6Handler(w http.ResponseWriter, r *http.Request) {
	m := image.NewRGBA(image.Rect(0, 0, 240, 240))
	color := color.RGBA{
		uint8(255),
		uint8(255),
		255,
		255}
	drawGrid6X6(m, color)
	color1 := color.RGBA{uint8(255), uint8(255), 255, 255}
	color2 := color.RGBA{uint8(0), uint8(0), 0, 255}
	drawGrid6X6(m, color1, color2)
	var img image.Image = m
	writeImage(w, &img)
}
@@ -124,7 +143,7 @@ func gradientHandler(w http.ResponseWriter, r *http.Request) {
	writeImage(w, &img)
}

func drawGrid6X6(m *image.RGBA, color color.RGBA) {
func drawGrid6X6(m *image.RGBA, color1, color2 color.RGBA) {
	size := m.Bounds().Size()
	quad := size.X / 6
	for x := 0; x < size.X; x++ {
@@ -132,7 +151,23 @@ func drawGrid6X6(m *image.RGBA, color color.RGBA) {
		for y := 0; y < size.Y; y++ {
			val2 := ((y / quad) % quad) % 2
			if val+val2 == 1 {
				m.Set(x, y, color)
				m.Set(x, y, color1)
			} else {
				m.Set(x, y, color2)
			}
		}
	}
}

func drawRandomGrid6X6(m *image.RGBA, color1, color2 color.RGBA) {
	size := m.Bounds().Size()
	for x := 0; x < size.X; x++ {
		for y := 0; y < size.Y; y++ {
			r := rand.Intn(2)
			if r == 0 {
				m.Set(x, y, color1)
			} else {
				m.Set(x, y, color2)
			}
		}
	}
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ func main() {
	r.HandleFunc("/grid/?", grid6X6Handler)
	r.HandleFunc("/gradient/?", gradientHandler)
	r.HandleFunc("/[1-8]/?", colorGridHandler)
	r.HandleFunc("/random/[1-8]/?", randomColorGridHandler)

	r.AddStaticResource(root)

	log.Println("Listening on " + os.Getenv("PORT"))