Documentation
¶
Overview ¶
Package font defines an interface for font faces, for drawing text on an image.
Other packages provide font face implementations. For example, a truetype package would provide one based on .ttf font files.
Deprecated: use "golang.org/x/image/font" instead.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Drawer ¶
type Drawer struct {
// Dst is the destination image.
Dst draw.Image
// Src is the source image.
Src image.Image
// Face provides the glyph mask images.
Face Face
// Dot is the baseline location to draw the next glyph. The majority of the
// affected pixels will be above and to the right of the dot, but some may
// be below or to the left. For example, drawing a 'j' in an italic face
// may affect pixels below and to the left of the dot.
Dot fixed.Point26_6
}
Drawer draws text on a destination image.
A Drawer is not safe for concurrent use by multiple goroutines, since its Face is not.
func (*Drawer) DrawString ¶
DrawString draws s at the dot and advances the dot's location.
type Face ¶
type Face interface {
io.Closer
// Glyph returns the draw.DrawMask parameters (dr, mask, maskp) to draw r's
// glyph at the sub-pixel destination location dot, and that glyph's
// advance width.
//
// It returns !ok if the face does not contain a glyph for r.
//
// The contents of the mask image returned by one Glyph call may change
// after the next Glyph call. Callers that want to cache the mask must make
// a copy.
Glyph(dot fixed.Point26_6, r rune) (
dr image.Rectangle, mask image.Image, maskp image.Point, advance fixed.Int26_6, ok bool)
// GlyphBounds returns the bounding box of r's glyph, drawn at a dot equal
// to the origin, and that glyph's advance width.
//
// It returns !ok if the face does not contain a glyph for r.
//
// The glyph's ascent and descent equal -bounds.Min.Y and +bounds.Max.Y. A
// visual depiction of what these metrics are is at
// https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Art/glyph_metrics_2x.png
GlyphBounds(r rune) (bounds fixed.Rectangle26_6, advance fixed.Int26_6, ok bool)
// GlyphAdvance returns the advance width of r's glyph.
//
// It returns !ok if the face does not contain a glyph for r.
GlyphAdvance(r rune) (advance fixed.Int26_6, ok bool)
// Kern returns the horizontal adjustment for the kerning pair (r0, r1). A
// positive kern means to move the glyphs further apart.
Kern(r0, r1 rune) fixed.Int26_6
}
Face is a font face. Its glyphs are often derived from a font file, such as "Comic_Sans_MS.ttf", but a face has a specific size, style, weight and hinting. For example, the 12pt and 18pt versions of Comic Sans are two different faces, even if derived from the same font file.
A Face is not safe for concurrent use by multiple goroutines, as its methods may re-use implementation-specific caches and mask image buffers.
To create a Face, look to other packages that implement specific font file formats.
type Hinting ¶
type Hinting int
Hinting selects how to quantize a vector font's glyph nodes.
Not all fonts support hinting.
type Stretch ¶
type Stretch int
Stretch selects a normal, condensed, or expanded face.
Not all fonts support stretches.
const ( StretchUltraCondensed Stretch = -4 StretchExtraCondensed Stretch = -3 StretchCondensed Stretch = -2 StretchSemiCondensed Stretch = -1 StretchNormal Stretch = +0 StretchSemiExpanded Stretch = +1 StretchExpanded Stretch = +2 StretchExtraExpanded Stretch = +3 StretchUltraExpanded Stretch = +4 )
type Style ¶
type Style int
Style selects a normal, italic, or oblique face.
Not all fonts support styles.