func test(t *testing.T, draw sample) { // Initialize the graphic context on an RGBA image dest := image.NewRGBA(image.Rect(0, 0, 297, 210.0)) gc := draw2dimg.NewGraphicContext(dest) // Draw Android logo output, err := draw(gc, "png") if err != nil { t.Errorf("Drawing %q failed: %v", output, err) return } // Save to png err = draw2dimg.SaveToPngFile(output, dest) if err != nil { t.Errorf("Saving %q failed: %v", output, err) } }
// AddTo returns a new ImageGraphics which will write to (width x height) sized // area starting at (x,y) on the provided image img. The rest of the parameters // are the same as in New(). func AddTo(img *image.RGBA, x, y, width, height int, bgcol color.RGBA, font *truetype.Font, fontsize map[chart.FontSize]float64) *ImageGraphics { gc := draw2dimg.NewGraphicContext(img) gc.SetLineJoin(draw2d.BevelJoin) gc.SetLineCap(draw2d.SquareCap) gc.SetStrokeColor(image.Black) gc.SetFillColor(bgcol) gc.Translate(float64(x)+0.5, float64(y)+0.5) gc.ClearRect(x, y, x+width, y+height) if font == nil { font = defaultFont } if len(fontsize) == 0 { fontsize = ConstructFontSizes(13) } return &ImageGraphics{Image: img, x0: x, y0: y, w: width, h: height, bg: bgcol, gc: gc, font: font, fs: fontsize} }
// New creates a new ImageGraphics including an image.RGBA of dimension w x h // with background bgcol. If font is nil it will use a builtin font. // If fontsize is empty useful default are used. func New(width, height int, bgcol color.RGBA, font *truetype.Font, fontsize map[chart.FontSize]float64) *ImageGraphics { img := image.NewRGBA(image.Rect(0, 0, width, height)) gc := draw2dimg.NewGraphicContext(img) gc.SetLineJoin(draw2d.BevelJoin) gc.SetLineCap(draw2d.SquareCap) gc.SetStrokeColor(image.Black) gc.SetFillColor(bgcol) gc.Translate(0.5, 0.5) gc.Clear() if font == nil { font = defaultFont } if len(fontsize) == 0 { fontsize = ConstructFontSizes(13) } return &ImageGraphics{Image: img, x0: 0, y0: 0, w: width, h: height, bg: bgcol, gc: gc, font: font, fs: fontsize} }