Go bindings for the FreeType library. Only the high-level API is bound.
go get -u github.com/danielgatis/go-freetypeAnd then import the package in your code:
import "github.com/danielgatis/go-freetype/freetype"An example described below is one of the use cases.
package main import ( "fmt" "image/png" "io/ioutil" "os" "github.com/danielgatis/go-findfont/findfont" "github.com/danielgatis/go-freetype/freetype" ) func checkErr(err error) { if err != nil { fmt.Printf("Failed: %v\n", err) os.Exit(1) } } func main() { fonts, err := findfont.Find("Arial", findfont.FontRegular) checkErr(err) data, err := ioutil.ReadFile(fonts[0][2]) checkErr(err) lib, err := freetype.NewLibrary() checkErr(err) face, err := freetype.NewFace(lib, data, 0) checkErr(err) err = face.Pt(32, 72) checkErr(err) img, m, err := face.Glyph('A') checkErr(err) f, err := os.Create("image.png") checkErr(err) err = png.Encode(f, img) checkErr(err) fmt.Printf("Image: %v\n", f.Name()) fmt.Printf("Metrics: %v\n", m) err = face.Done() checkErr(err) err = lib.Done() checkErr(err) }❯ go run main.go Image: image.png Metrics: &{23 23 -1 23 21 -11 3 30} image.png
Copyright (c) 2020-present Daniel Gatis
Licensed under MIT License
