Loading colors/colors.go +65 −0 Original line number Diff line number Diff line Loading @@ -46,3 +46,68 @@ func MapOfColorPatterns() map[int][]color.RGBA { }, } } // MapOfColorThemes is used to build random images with colors that combine together. func MapOfColorThemes() map[string][]color.RGBA { return map[string][]color.RGBA{ "base": []color.RGBA{ color.RGBA{uint8(255), uint8(255), uint8(255), uint8(255)}, color.RGBA{uint8(0), uint8(0), uint8(0), uint8(255)}, }, "sugarsweets": []color.RGBA{ color.RGBA{232, 70, 134, 255}, // main color.RGBA{232, 70, 186, 255}, // 2dary color.RGBA{232, 70, 81, 255}, // 2dary color.RGBA{255, 245, 249, 255}, //background }, "heatwave": []color.RGBA{ color.RGBA{251, 76, 1, 255}, // main color.RGBA{207, 36, 24, 255}, // 2dary color.RGBA{255, 141, 20, 255}, // 2dary color.RGBA{255, 251, 243, 255}, //background }, "daisygarden": []color.RGBA{ color.RGBA{177, 192, 24, 255}, // main color.RGBA{135, 173, 22, 255}, // 2dary color.RGBA{235, 199, 23, 255}, // 2dary color.RGBA{254, 251, 230, 255}, //background }, "seascape": []color.RGBA{ color.RGBA{0, 114, 122, 255}, // main color.RGBA{0, 81, 130, 255}, // 2dary color.RGBA{0, 171, 145, 255}, // 2dary color.RGBA{240, 245, 244, 255}, //background }, "summerwarmth": []color.RGBA{ color.RGBA{247, 228, 64, 255}, // main color.RGBA{255, 207, 72, 255}, // 2dary color.RGBA{193, 222, 53, 255}, // 2dary color.RGBA{255, 255, 232, 255}, //background }, "bythepool": []color.RGBA{ color.RGBA{80, 135, 243, 255}, // main color.RGBA{92, 186, 242, 255}, // 2dary color.RGBA{131, 103, 244, 255}, // 2dary color.RGBA{237, 242, 255, 255}, //background }, "duskfalling": []color.RGBA{ color.RGBA{142, 74, 219, 255}, // main color.RGBA{70, 86, 212, 255}, // 2dary color.RGBA{201, 64, 206, 255}, // 2dary color.RGBA{244, 234, 252, 255}, //background }, "frogideas": []color.RGBA{ color.RGBA{93, 214, 75, 255}, // main color.RGBA{67, 191, 134, 255}, // 2dary color.RGBA{148, 232, 56, 255}, // 2dary color.RGBA{226, 255, 222, 255}, //background }, "berrypie": []color.RGBA{ color.RGBA{248, 0, 6, 255}, // main color.RGBA{245, 44, 118, 255}, // 2dary color.RGBA{255, 79, 0, 255}, // 2dary color.RGBA{255, 240, 240, 255}, //background }, } } controllers/checkerboard/checkerboard.go +13 −4 Original line number Diff line number Diff line Loading @@ -49,15 +49,24 @@ func Color(w http.ResponseWriter, r *http.Request) { // build a 6x6 checkerboard with alternate black and white colors. func Checkerboard(w http.ResponseWriter, r *http.Request) { size := extract.Size(r) color1 := color.RGBA{uint8(255), uint8(255), 255, 255} color2 := color.RGBA{uint8(0), uint8(0), 0, 255} theme := extract.Theme(r) colorMap := colors.MapOfColorThemes() var c1, c2 color.RGBA if val, ok := colorMap[theme]; ok { c1 = val[0] c2 = val[1] } else { c1 = colorMap["base"][0] c2 = colorMap["base"][1] } if f := extract.Format(r); f == format.JPEG { m := image.NewRGBA(image.Rect(0, 0, size, size)) draw.Grid6X6(m, color1, color2) draw.Grid6X6(m, c1, c2) var img image.Image = m write.ImageJPEG(w, &img) } else if f == format.SVG { write.ImageSVG(w) draw.Grid6X6SVG(w, color1, color2, size) draw.Grid6X6SVG(w, c1, c2, size) } } extract/extract.go +10 −1 Original line number Diff line number Diff line Loading @@ -3,11 +3,12 @@ package extract import ( "fmt" "github.com/taironas/tinygraphs/format" "image/color" "net/http" "strconv" "strings" "github.com/taironas/tinygraphs/format" ) // extract hexadecimal code background from HTTP request and return color.RGBA Loading Loading @@ -73,3 +74,11 @@ func hexToRGB(h string) (uint8, uint8, uint8, error) { } return 0, 0, 0, nil } func Theme(r *http.Request) string { strTheme := strings.ToLower(r.FormValue("theme")) if len(strTheme) > 0 { return strTheme } return "base" } Loading
colors/colors.go +65 −0 Original line number Diff line number Diff line Loading @@ -46,3 +46,68 @@ func MapOfColorPatterns() map[int][]color.RGBA { }, } } // MapOfColorThemes is used to build random images with colors that combine together. func MapOfColorThemes() map[string][]color.RGBA { return map[string][]color.RGBA{ "base": []color.RGBA{ color.RGBA{uint8(255), uint8(255), uint8(255), uint8(255)}, color.RGBA{uint8(0), uint8(0), uint8(0), uint8(255)}, }, "sugarsweets": []color.RGBA{ color.RGBA{232, 70, 134, 255}, // main color.RGBA{232, 70, 186, 255}, // 2dary color.RGBA{232, 70, 81, 255}, // 2dary color.RGBA{255, 245, 249, 255}, //background }, "heatwave": []color.RGBA{ color.RGBA{251, 76, 1, 255}, // main color.RGBA{207, 36, 24, 255}, // 2dary color.RGBA{255, 141, 20, 255}, // 2dary color.RGBA{255, 251, 243, 255}, //background }, "daisygarden": []color.RGBA{ color.RGBA{177, 192, 24, 255}, // main color.RGBA{135, 173, 22, 255}, // 2dary color.RGBA{235, 199, 23, 255}, // 2dary color.RGBA{254, 251, 230, 255}, //background }, "seascape": []color.RGBA{ color.RGBA{0, 114, 122, 255}, // main color.RGBA{0, 81, 130, 255}, // 2dary color.RGBA{0, 171, 145, 255}, // 2dary color.RGBA{240, 245, 244, 255}, //background }, "summerwarmth": []color.RGBA{ color.RGBA{247, 228, 64, 255}, // main color.RGBA{255, 207, 72, 255}, // 2dary color.RGBA{193, 222, 53, 255}, // 2dary color.RGBA{255, 255, 232, 255}, //background }, "bythepool": []color.RGBA{ color.RGBA{80, 135, 243, 255}, // main color.RGBA{92, 186, 242, 255}, // 2dary color.RGBA{131, 103, 244, 255}, // 2dary color.RGBA{237, 242, 255, 255}, //background }, "duskfalling": []color.RGBA{ color.RGBA{142, 74, 219, 255}, // main color.RGBA{70, 86, 212, 255}, // 2dary color.RGBA{201, 64, 206, 255}, // 2dary color.RGBA{244, 234, 252, 255}, //background }, "frogideas": []color.RGBA{ color.RGBA{93, 214, 75, 255}, // main color.RGBA{67, 191, 134, 255}, // 2dary color.RGBA{148, 232, 56, 255}, // 2dary color.RGBA{226, 255, 222, 255}, //background }, "berrypie": []color.RGBA{ color.RGBA{248, 0, 6, 255}, // main color.RGBA{245, 44, 118, 255}, // 2dary color.RGBA{255, 79, 0, 255}, // 2dary color.RGBA{255, 240, 240, 255}, //background }, } }
controllers/checkerboard/checkerboard.go +13 −4 Original line number Diff line number Diff line Loading @@ -49,15 +49,24 @@ func Color(w http.ResponseWriter, r *http.Request) { // build a 6x6 checkerboard with alternate black and white colors. func Checkerboard(w http.ResponseWriter, r *http.Request) { size := extract.Size(r) color1 := color.RGBA{uint8(255), uint8(255), 255, 255} color2 := color.RGBA{uint8(0), uint8(0), 0, 255} theme := extract.Theme(r) colorMap := colors.MapOfColorThemes() var c1, c2 color.RGBA if val, ok := colorMap[theme]; ok { c1 = val[0] c2 = val[1] } else { c1 = colorMap["base"][0] c2 = colorMap["base"][1] } if f := extract.Format(r); f == format.JPEG { m := image.NewRGBA(image.Rect(0, 0, size, size)) draw.Grid6X6(m, color1, color2) draw.Grid6X6(m, c1, c2) var img image.Image = m write.ImageJPEG(w, &img) } else if f == format.SVG { write.ImageSVG(w) draw.Grid6X6SVG(w, color1, color2, size) draw.Grid6X6SVG(w, c1, c2, size) } }
extract/extract.go +10 −1 Original line number Diff line number Diff line Loading @@ -3,11 +3,12 @@ package extract import ( "fmt" "github.com/taironas/tinygraphs/format" "image/color" "net/http" "strconv" "strings" "github.com/taironas/tinygraphs/format" ) // extract hexadecimal code background from HTTP request and return color.RGBA Loading Loading @@ -73,3 +74,11 @@ func hexToRGB(h string) (uint8, uint8, uint8, error) { } return 0, 0, 0, nil } func Theme(r *http.Request) string { strTheme := strings.ToLower(r.FormValue("theme")) if len(strTheme) > 0 { return strTheme } return "base" }