Documentation ¶
Overview ¶
Package vgimg implements the vg.Canvas interface using github.com/fogleman/gg as a backend to output raster images.
Index ¶
- Constants
- func UseBackgroundColor(c color.Color) option
- func UseDPI(dpi int) option
- func UseImage(img draw.Image) option
- func UseImageWithContext(img draw.Image, ctx *gg.Context) option
- func UseWH(w, h vg.Length) option
- type Canvas
- func (c *Canvas) DPI() float64
- func (c *Canvas) DrawImage(rect vg.Rectangle, img image.Image)
- func (c *Canvas) Fill(p vg.Path)
- func (c *Canvas) FillString(font vg.Font, pt vg.Point, str string)
- func (c *Canvas) Image() draw.Image
- func (c *Canvas) Pop()
- func (c *Canvas) Push()
- func (c *Canvas) Rotate(t float64)
- func (c *Canvas) Scale(x, y float64)
- func (c *Canvas) SetColor(clr color.Color)
- func (c *Canvas) SetLineDash(ds []vg.Length, offs vg.Length)
- func (c *Canvas) SetLineWidth(w vg.Length)
- func (c *Canvas) Size() (w, h vg.Length)
- func (c *Canvas) Stroke(p vg.Path)
- func (c *Canvas) Translate(pt vg.Point)
- type JpegCanvas
- type PngCanvas
- type TiffCanvas
Examples ¶
Constants ¶
const ( // DefaultDPI is the default dot resolution for image // drawing in dots per inch. DefaultDPI = 96 // DefaultWidth and DefaultHeight are the default canvas // dimensions. DefaultWidth = 4 * vg.Inch DefaultHeight = 4 * vg.Inch )
Variables ¶
This section is empty.
Functions ¶
func UseBackgroundColor ¶
UseBackgroundColor specifies the image background color. Without UseBackgroundColor, the default color is white.
Example ¶
package main import ( "image/color" "log" "github.com/elamre/plot" "github.com/elamre/plot/vg" "github.com/elamre/plot/vg/draw" "github.com/elamre/plot/vg/vgimg" ) func main() { p, err := plot.New() if err != nil { log.Fatalf("%+v", err) } p.Title.Text = "Title" p.X.Label.Text = "X" p.Y.Label.Text = "Y" const ( width = 10 * vg.Centimeter height = 10 * vg.Centimeter ) // Create a new canvas with the given dimensions, // and specify an explicit background color for the plot. c := vgimg.NewWith( vgimg.UseWH(width, height), vgimg.UseBackgroundColor(color.Transparent), ) dc := draw.New(c) p.Draw(dc) }
Output:
func UseDPI ¶
func UseDPI(dpi int) option
UseDPI sets the dots per inch of a canvas. It should only be used as an option argument when initializing a new canvas.
Example ¶
package main import ( "log" "github.com/elamre/plot" "github.com/elamre/plot/vg" "github.com/elamre/plot/vg/draw" "github.com/elamre/plot/vg/vgimg" ) func main() { p, err := plot.New() if err != nil { log.Fatalf("%+v", err) } p.Title.Text = "Title" p.X.Label.Text = "X" p.Y.Label.Text = "Y" const ( width = 10 * vg.Centimeter height = 10 * vg.Centimeter ) // Create a new canvas with the given dimensions, // and specify an explicit DPI value (dot per inch) // for the plot. c := vgimg.NewWith( vgimg.UseWH(width, height), vgimg.UseDPI(72), ) dc := draw.New(c) p.Draw(dc) }
Output:
func UseImage ¶
UseImage specifies an image to create the canvas from. The minimum point of the given image should probably be 0,0.
Note that a copy of the input image is performed. This means that modifications applied to the canvas are not reflected on the original image.
Example ¶
package main import ( "image" "log" "github.com/elamre/plot" "github.com/elamre/plot/vg/draw" "github.com/elamre/plot/vg/vgimg" ) func main() { p, err := plot.New() if err != nil { log.Fatalf("%+v", err) } p.Title.Text = "Title" p.X.Label.Text = "X" p.Y.Label.Text = "Y" img := image.NewRGBA(image.Rect(0, 100, 0, 100)) // Create a new canvas using the given image to specify the dimensions // of the plot. // // Note that modifications applied to the canvas will not be reflected on // the input image. c := vgimg.NewWith( vgimg.UseImage(img), ) dc := draw.New(c) p.Draw(dc) }
Output:
func UseImageWithContext ¶
UseImageWithContext specifies both an image and a graphic context to create the canvas from. The minimum point of the given image should probably be 0,0.
Types ¶
type Canvas ¶
type Canvas struct {
// contains filtered or unexported fields
}
Canvas implements the vg.Canvas interface, drawing to an image.Image using draw2d.
func NewWith ¶
func NewWith(o ...option) *Canvas
NewWith returns a new image canvas created according to the specified options. The currently accepted options are UseWH, UseDPI, UseImage, and UseImageWithContext. Each of the options specifies the size of the canvas (UseWH, UseImage), the resolution of the canvas (UseDPI), or both (useImageWithContext). If size or resolution are not specified, defaults are used. It panics if size and resolution are overspecified (i.e., too many options are passed).
func (*Canvas) Image ¶
Image returns the image the canvas is drawing to.
The dimensions of the returned image must not be modified.
func (*Canvas) SetLineWidth ¶
type JpegCanvas ¶
type JpegCanvas struct {
*Canvas
}
A JpegCanvas is an image canvas with a WriteTo method that writes a jpeg image.
type PngCanvas ¶
type PngCanvas struct {
*Canvas
}
A PngCanvas is an image canvas with a WriteTo method that writes a png image.
type TiffCanvas ¶
type TiffCanvas struct {
*Canvas
}
A TiffCanvas is an image canvas with a WriteTo method that writes a tiff image.