diff options
Diffstat (limited to 'cmd/fonttobytes')
| -rw-r--r-- | cmd/fonttobytes/main.go | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/cmd/fonttobytes/main.go b/cmd/fonttobytes/main.go new file mode 100644 index 0000000..011baa1 --- /dev/null +++ b/cmd/fonttobytes/main.go @@ -0,0 +1,47 @@ +package main + +import ( +	"bytes" +	"compress/zlib" +	"flag" +	"fmt" +	"io/ioutil" +	"log" +) + +func main() { +	flag.Usage = func() { +		fmt.Fprintln(flag.CommandLine.Output(), "Usage: fonttobytes font.ttf") +		flag.PrintDefaults() +	} +	flag.Parse() + +	if flag.NArg() != 1 { +		flag.Usage() +		return +	} + +	font, err := ioutil.ReadFile(flag.Arg(0)) +	if err != nil { +		log.Fatalln(err) +	} + +	// compress with zlib +	var buf bytes.Buffer +	w := zlib.NewWriter(&buf) +	w.Write(font) +	w.Close() + +	// this could be done more simply with %+v, but that takes up +	// significantly more space due to printing each byte in hex +	// rather than dec format. + +	fmt.Printf("[]byte{") +	for i, b := range buf.Bytes() { +		if i > 0 { +			fmt.Printf(", ") +		} +		fmt.Printf("%d", b) +	} +	fmt.Printf("}\n") +} | 
