func main() { flag.Parse() fmt.Printf("Loading fontfile %q\n", *fontfile) b, err := ioutil.ReadFile(*fontfile) if err != nil { log.Println(err) return } font, err := truetype.Parse(b) if err != nil { log.Println(err) return } printBounds(font.Bounds()) fmt.Printf("UnitsPerEm:%d\n\n", font.UnitsPerEm()) c0, c1 := 'A', 'V' i0 := font.Index(c0) hm := font.HMetric(i0) g := truetype.NewGlyphBuf() err = g.Load(font, i0) if err != nil { log.Println(err) return } fmt.Printf("'%c' glyph\n", c0) fmt.Printf("AdvanceWidth:%d LeftSideBearing:%d\n", hm.AdvanceWidth, hm.LeftSideBearing) printGlyph(g) i1 := font.Index(c1) fmt.Printf("\n'%c', '%c' Kerning:%d\n", c0, c1, font.Kerning(i0, i1)) }
// NewContext creates a new Context. func NewContext() *Context { return &Context{ r: raster.NewRasterizer(0, 0), glyphBuf: truetype.NewGlyphBuf(), fontSize: 12, dpi: 72, upe: 2048, scale: (12 * 72 * 256 * 256) / (2048 * 72), } }