Documentation ¶
Overview ¶
Package truetype provides a parser for the TTF and TTC file formats. Those formats are documented at http://developer.apple.com/fonts/TTRefMan/ and http://www.microsoft.com/typography/otspec/
Some of a font's methods provide lengths or co-ordinates, e.g. bounds, font metrics and control points. All these methods take a scale parameter, which is the number of device units in 1 em. For example, if 1 em is 10 pixels and 1 pixel is 64 units, then scale is 640. If the device space involves pixels, 64 units per pixel is recommended, since that is what the bytecode hinter uses when snapping point co-ordinates to the pixel grid.
To measure a TrueType font in ideal FUnit space, use scale equal to font.FUnitsPerEm().
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bounds ¶
type Bounds struct {
XMin, YMin, XMax, YMax int32
}
A Bounds holds the co-ordinate range of one or more glyphs. The endpoints are inclusive.
type Font ¶
type Font struct {
// contains filtered or unexported fields
}
A Font represents a Truetype font.
func Parse ¶
Parse returns a new Font for the given TTF or TTC data.
For TrueType Collections, the first font in the collection is parsed.
func (*Font) FUnitsPerEm ¶
FUnitsPerEm returns the number of FUnits in a Font's em-square's side.
type FormatError ¶
type FormatError string
A FormatError reports that the input is not a valid TrueType font.
func (FormatError) Error ¶
func (e FormatError) Error() string
type GlyphBuf ¶
type GlyphBuf struct { // AdvanceWidth is the glyph's advance width. AdvanceWidth int32 // B is the glyph's bounding box. B Bounds // Point contains all Points from all contours of the glyph. If // hinting was used to load a glyph then Unhinted contains those // Points before they were hinted, and InFontUnits contains those // Points before they were hinted and scaled. Point, Unhinted, InFontUnits []Point // End is the point indexes of the end point of each countour. The // length of End is the number of contours in the glyph. The i'th // contour consists of points Point[End[i-1]:End[i]], where End[-1] // is interpreted to mean zero. End []int // contains filtered or unexported fields }
A GlyphBuf holds a glyph's contours. A GlyphBuf can be re-used to load a series of glyphs from a Font.
type HMetric ¶
type HMetric struct {
AdvanceWidth, LeftSideBearing int32
}
An HMetric holds the horizontal metrics of a single glyph.
type Hinting ¶
type Hinting int32
Hinting is the policy for snapping a glyph's contours to pixel boundaries.
type Point ¶
type Point struct {
X, Y int32
// The Flags' LSB means whether or not this Point is “on” the contour.
// Other bits are reserved for internal use.
Flags uint32
}
A Point is a co-ordinate pair plus whether it is “on” a contour or an “off” control point.
type UnsupportedError ¶
type UnsupportedError string
An UnsupportedError reports that the input uses a valid but unimplemented TrueType feature.
func (UnsupportedError) Error ¶
func (e UnsupportedError) Error() string