Updates and Fixes

**resource.go/assets.go**
*  renamed `resources.go` to `assets.go`
*  added dark glyphs - located in assets.go -> assets/glyphs/dark/
*  moved original glyphs - located in assets.go -> assets/glyph/light/

**glyphbanner.go**
* added option to make glyphs vertical and/or dark

**rpcg.go**
* Added a random portal code generator this function takes no args and returns a string

**README.md**
* Fixed some typos (probably more to be fixed)
* Added example of vertical portal banner
* Added list of options for banner creation
* Added example of ``nmslib.RndPortal()`` usage

**go.mod**
* updated go version to 1.16
This commit is contained in:
Raum0x2A
2021-05-07 16:03:08 +00:00
parent 87bec565f1
commit 284313eacc
10 changed files with 1177 additions and 754 deletions

View File

@@ -7,8 +7,6 @@ import (
"os"
"strconv"
"github.com/nfnt/resize"
gim "github.com/ozankasikci/go-image-merge"
)
@@ -18,14 +16,17 @@ var portalex string
Portal Glyph hex string
var savename string
Output name of PNG file
var vopt int
1 enables vertical banner
0 enables horizontal banner
var opt int
00 sets horizontal banner in light mode
10 sets vertical banner in light mode
01 sets horizontal banner in dark mode
11 sets vertical banner in dark mode
*/
func CreateBanner(portalhex string, savename string, vopt int) {
func CreateBanner(portalhex string, savename string, opt int) {
var err error
var GlyphHex [12]int64
var glyphImg [12]string
var mode string
var vert int
var horz int
@@ -34,7 +35,7 @@ func CreateBanner(portalhex string, savename string, vopt int) {
if err != nil {
panic(err)
}
defer os.RemoveAll(tempdir)
//defer os.RemoveAll(tempdir)
// verify len of portalhex
if len(portalhex) == 12 {
@@ -45,9 +46,25 @@ func CreateBanner(portalhex string, savename string, vopt int) {
panic(err)
}
}
// set options
if opt == 00 { // set vertical rendering in light mode
vert, horz = 12, 1
mode = "light"
} else if opt == 01 { // set vertival in dark mode
vert, horz = 12, 1
mode = "dark"
} else if opt == 11 { // set horizontal rendering in dark mode
vert, horz = 1, 12
mode = "dark"
} else { // set horizontal rendering in light mode (classic/default)
vert, horz = 1, 12
mode = "light"
}
// assign image location of its glyph hex value to an array of strings
for j := 0; j < len(glyphImg); j++ {
glyphImg[j] = fmt.Sprintf("glyphs/GLYPH-%X.png", GlyphHex[j])
glyphImg[j] = fmt.Sprintf("assets/glyphs/%s/PORTALSYMBOL.%X.png", mode, GlyphHex[j])
}
// pull images need from glyph.go and saved them to ./glyphs/
for k := 0; k < len(glyphImg); k++ {
@@ -55,47 +72,39 @@ func CreateBanner(portalhex string, savename string, vopt int) {
if err != nil {
panic(err)
}
_, err2 := os.Stat(tempdir + "/glyphs/")
_, err2 := os.Stat(tempdir + "/assets/glyphs/" + mode + "/")
if os.IsNotExist(err2) {
errDir := os.MkdirAll(tempdir+"/glyphs", 0755)
errDir := os.MkdirAll(tempdir+"/assets/glyphs/"+mode, 0755)
if errDir != nil {
panic(errDir)
}
}
// fmt.Println(tempdir + "/" + glyphImg[k]) // for debugging only
err = ioutil.WriteFile(tempdir+"/"+glyphImg[k], []byte(data), 0644)
}
// load images for processing using github.com/ozankasikci/go-image-merge
grids := []*gim.Grid{
{ImageFilePath: tempdir + "/" + glyphImg[0]}, {ImageFilePath: tempdir + "/" + glyphImg[1]},
{ImageFilePath: tempdir + "/" + glyphImg[2]}, {ImageFilePath: tempdir + "/" + glyphImg[3]},
{ImageFilePath: tempdir + "/" + glyphImg[4]}, {ImageFilePath: tempdir + "/" + glyphImg[5]},
{ImageFilePath: tempdir + "/" + glyphImg[6]}, {ImageFilePath: tempdir + "/" + glyphImg[7]},
{ImageFilePath: tempdir + "/" + glyphImg[8]}, {ImageFilePath: tempdir + "/" + glyphImg[9]},
{ImageFilePath: tempdir + "/" + glyphImg[10]}, {ImageFilePath: tempdir + "/" + glyphImg[11]},
}
// create new image from grids
rgba, err := gim.New(grids, vert, horz).Merge()
if err != nil {
panic(err)
}
// save the output to png
file, err := os.Create(savename)
err = png.Encode(file, rgba)
if err != nil {
fmt.Println(err)
}
}
// load images for processing using github.com/ozankasikci/go-image-merge
grids := []*gim.Grid{
{ImageFilePath: tempdir + "/" + glyphImg[0]}, {ImageFilePath: tempdir + "/" + glyphImg[1]},
{ImageFilePath: tempdir + "/" + glyphImg[2]}, {ImageFilePath: tempdir + "/" + glyphImg[3]},
{ImageFilePath: tempdir + "/" + glyphImg[4]}, {ImageFilePath: tempdir + "/" + glyphImg[5]},
{ImageFilePath: tempdir + "/" + glyphImg[6]}, {ImageFilePath: tempdir + "/" + glyphImg[7]},
{ImageFilePath: tempdir + "/" + glyphImg[8]}, {ImageFilePath: tempdir + "/" + glyphImg[9]},
{ImageFilePath: tempdir + "/" + glyphImg[10]}, {ImageFilePath: tempdir + "/" + glyphImg[11]},
}
if vopt == 1 { // set vertical rendering
vert, horz = 1, 12
} else { // set horizontal rendering (default)
vert, horz = 12, 1
}
// create new image from grids
rgba, err := gim.New(grids, vert, horz).Merge()
if err != nil {
panic(err)
}
// Resize banner 768x64
nuimg := resize.Resize(768, 64, rgba, resize.Lanczos3)
// save the output to png
fmt.Printf("Saving %s to %s\n", portalhex, savename)
file, err := os.Create(savename)
err = png.Encode(file, nuimg)
if err != nil {
fmt.Println(err)
}
}