go-freetype

command module
v0.0.0-...-689a6dd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2020 License: MIT Imports: 6 Imported by: 0

README

go-freetype

Go Report Card License MIT Go Doc

Go bindings for the FreeType library. Only the high-level API is bound.

Install

go get -u github.com/danielgatis/go-freetype

And then import the package in your code:

import "github.com/danielgatis/go-freetype/freetype"
Example

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

image.png

License

Copyright (c) 2020-present Daniel Gatis

Licensed under MIT License

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL