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") +} |