Version: v0.0.0-...-80aa0a2 Latest Latest

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

Go to latest
Published: Sep 4, 2021 License: BSD-2-Clause Imports: 15 Imported by: 167



Coverage GoDoc

draw2d implementation that generates raster images using https://github.com/golang/freetype package.




This section is empty.


This section is empty.


func DrawContour

func DrawContour(path draw2d.PathBuilder, ps []truetype.Point, dx, dy float64)

DrawContour draws the given closed contour at the given sub-pixel offset.

func DrawImage

func DrawImage(src image.Image, dest draw.Image, tr draw2d.Matrix, op draw.Op, filter ImageFilter)

DrawImage draws an image into dest using an affine transformation matrix, an op and a filter

func LoadFromPngFile

func LoadFromPngFile(filePath string) (image.Image, error)

LoadFromPngFile Open a png file

func SaveToPngFile

func SaveToPngFile(filePath string, m image.Image) error

SaveToPngFile create and save an image to a file using PNG format


type FontExtents

type FontExtents struct {
	// Ascent is the distance that the text
	// extends above the baseline.
	Ascent float64

	// Descent is the distance that the text
	// extends below the baseline.  The descent
	// is given as a negative value.
	Descent float64

	// Height is the distance from the lowest
	// descending point to the highest ascending
	// point.
	Height float64

FontExtents contains font metric information.

func Extents

func Extents(font *truetype.Font, size float64) FontExtents

Extents returns the FontExtents for a font. TODO needs to read this https://developer.apple.com/fonts/TrueType-Reference-Manual/RM02/Chap2.html#intro

type FtLineBuilder

type FtLineBuilder struct {
	Adder raster.Adder

func (FtLineBuilder) Close

func (liner FtLineBuilder) Close()

func (FtLineBuilder) End

func (liner FtLineBuilder) End()

func (FtLineBuilder) LineJoin

func (liner FtLineBuilder) LineJoin()

func (FtLineBuilder) LineTo

func (liner FtLineBuilder) LineTo(x, y float64)

func (FtLineBuilder) MoveTo

func (liner FtLineBuilder) MoveTo(x, y float64)

type GraphicContext

type GraphicContext struct {

	FontCache draw2d.FontCache

	DPI    int
	Filter ImageFilter
	// contains filtered or unexported fields

GraphicContext is the implementation of draw2d.GraphicContext for a raster image

func NewGraphicContext

func NewGraphicContext(img draw.Image) *GraphicContext

NewGraphicContext creates a new Graphic context from an image.

func NewGraphicContextWithPainter

func NewGraphicContextWithPainter(img draw.Image, painter Painter) *GraphicContext

NewGraphicContextWithPainter creates a new Graphic context from an image and a Painter (see Freetype-go)

func (*GraphicContext) Clear

func (gc *GraphicContext) Clear()

Clear fills the current canvas with a default transparent color

func (*GraphicContext) ClearRect

func (gc *GraphicContext) ClearRect(x1, y1, x2, y2 int)

ClearRect fills the current canvas with a default transparent color at the specified rectangle

func (*GraphicContext) CreateStringPath

func (gc *GraphicContext) CreateStringPath(s string, x, y float64) float64

CreateStringPath creates a path from the string s at x, y, and returns the string width. The text is placed so that the left edge of the em square of the first character of s and the baseline intersect at x, y. The majority of the affected pixels will be above and to the right of the point, but some may be below or to the left. For example, drawing a string that starts with a 'J' in an italic font may affect pixels below and left of the point.

func (*GraphicContext) DrawImage

func (gc *GraphicContext) DrawImage(img image.Image)

DrawImage draws the raster image in the current canvas

func (*GraphicContext) Fill

func (gc *GraphicContext) Fill(paths ...*draw2d.Path)

Fill fills the paths with the color specified by SetFillColor

func (*GraphicContext) FillString

func (gc *GraphicContext) FillString(text string) (width float64)

FillString draws the text at point (0, 0)

func (*GraphicContext) FillStringAt

func (gc *GraphicContext) FillStringAt(text string, x, y float64) (width float64)

FillStringAt draws the text at the specified point (x, y)

func (*GraphicContext) FillStroke

func (gc *GraphicContext) FillStroke(paths ...*draw2d.Path)

FillStroke first fills the paths and than strokes them

func (*GraphicContext) GetDPI

func (gc *GraphicContext) GetDPI() int

GetDPI returns the resolution of the Image GraphicContext

func (*GraphicContext) GetStringBounds

func (gc *GraphicContext) GetStringBounds(s string) (left, top, right, bottom float64)

GetStringBounds returns the approximate pixel bounds of the string s at x, y. The the left edge of the em square of the first character of s and the baseline intersect at 0, 0 in the returned coordinates. Therefore the top and left coordinates may well be negative.

func (*GraphicContext) SetDPI

func (gc *GraphicContext) SetDPI(dpi int)

SetDPI sets the screen resolution in dots per inch.

func (*GraphicContext) SetFilter

func (gc *GraphicContext) SetFilter(filter ImageFilter)

SetFilter sets the ImageFilter to use for transformations

func (*GraphicContext) SetFont

func (gc *GraphicContext) SetFont(font *truetype.Font)

SetFont sets the font used to draw text.

func (*GraphicContext) SetFontSize

func (gc *GraphicContext) SetFontSize(fontSize float64)

SetFontSize sets the font size in points (as in “a 12 point font”).

func (*GraphicContext) Stroke

func (gc *GraphicContext) Stroke(paths ...*draw2d.Path)

Stroke strokes the paths with the color specified by SetStrokeColor

func (*GraphicContext) StrokeString

func (gc *GraphicContext) StrokeString(text string) (width float64)

StrokeString draws the contour of the text at point (0, 0)

func (*GraphicContext) StrokeStringAt

func (gc *GraphicContext) StrokeStringAt(text string, x, y float64) (width float64)

StrokeStringAt draws the contour of the text at point (x, y)

type ImageFilter

type ImageFilter int

ImageFilter defines the type of filter to use

const (
	// LinearFilter defines a linear filter
	LinearFilter ImageFilter = iota
	// BilinearFilter defines a bilinear filter
	// BicubicFilter defines a bicubic filter

type Painter

type Painter interface {
	SetColor(color color.Color)

Painter implements the freetype raster.Painter and has a SetColor method like the RGBAPainter

Jump to

Keyboard shortcuts

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