// FillString draws a filled and stroked string. func FillString(gc draw2d.GraphicContext, x, y, width, height float64) { sx, sy := width/100, height/100 gc.Save() gc.SetStrokeColor(image.Black) gc.SetLineWidth(1) draw2d.RoundRect(gc, x+sx*5, y+sy*5, x+sx*95, y+sy*95, sx*10, sy*10) gc.FillStroke() gc.SetFillColor(image.Black) gc.SetFontSize(height / 6) gc.Translate(x+sx*6, y+sy*52) gc.SetFontData(draw2d.FontData{ Name: "luxi", Family: draw2d.FontFamilyMono, Style: draw2d.FontStyleBold | draw2d.FontStyleItalic}) w := gc.FillString("Hug") gc.Translate(w+sx, 0) left, top, right, bottom := gc.GetStringBounds("cou") gc.SetStrokeColor(color.NRGBA{255, 0x33, 0x33, 0x80}) draw2d.Rect(gc, left, top, right, bottom) gc.SetLineWidth(height / 50) gc.Stroke() gc.SetFillColor(color.NRGBA{0x33, 0x33, 0xff, 0xff}) gc.SetStrokeColor(color.NRGBA{0x33, 0x33, 0xff, 0xff}) gc.SetLineWidth(height / 100) gc.StrokeString("Hug") gc.Restore() }
// Draw "Hello World" func Draw(gc draw2d.GraphicContext, text string) { // Draw a rounded rectangle using default colors draw2d.RoundRect(gc, 5, 5, 292, 205, 10, 10) gc.FillStroke() // Set the font luximbi.ttf gc.SetFontData(draw2d.FontData{ Name: "luxi", Family: draw2d.FontFamilyMono, Style: draw2d.FontStyleBold | draw2d.FontStyleItalic}) // Set the fill text color to black gc.SetFillColor(image.Black) gc.SetDPI(72) gc.SetFontSize(14) // Display Hello World gc.SetStrokeColor(color.NRGBA{0x33, 0xFF, 0x33, 0xFF}) gc.MoveTo(8, 0) gc.LineTo(8, 52) gc.LineTo(297, 52) gc.Stroke() gc.FillString(text) gc.FillStringAt(text, 8, 52) gc.Save() gc.SetFillColor(color.NRGBA{0xFF, 0x33, 0x33, 0xFF}) gc.SetStrokeColor(color.NRGBA{0xFF, 0x33, 0x33, 0xFF}) gc.Translate(145, 85) gc.StrokeStringAt(text, -50, 0) gc.Rotate(math.Pi / 4) gc.SetFillColor(color.NRGBA{0x33, 0x33, 0xFF, 0xFF}) gc.SetStrokeColor(color.NRGBA{0x33, 0x33, 0xFF, 0xFF}) gc.StrokeString(text) gc.Restore() }
// Draw "Hello World" func Draw(gc draw2d.GraphicContext, text string) { // Draw a rounded rectangle using default colors draw2dkit.RoundedRectangle(gc, 5, 5, 135, 95, 10, 10) gc.FillStroke() // Set the font luximbi.ttf gc.SetFontData(draw2d.FontData{Name: "luxi", Family: draw2d.FontFamilyMono, Style: draw2d.FontStyleBold | draw2d.FontStyleItalic}) // Set the fill text color to black gc.SetFillColor(image.Black) gc.SetFontSize(14) // Display Hello World gc.FillStringAt("Hello World", 8, 52) }
func drawText(gc draw2d.GraphicContext, text string, x, y float64) { var fontSize float64 = 14 fontSizeHeight := fontSize + 14 if y < fontSizeHeight { return } gc.SetFontData(draw2d.FontData{Name: "luxi", Family: draw2d.FontFamilyMono, Style: draw2d.FontStyleNormal}) // Set the fill text color to black gc.SetFillColor(image.Black) gc.SetFontSize(fontSize) // 9px width each letter and 2px letter spacing at font-size 14 var yPos float64 for ; yPos < y; yPos = yPos + fontSizeHeight { gc.FillStringAt(text, x, yPos) } }
// Draw "Hello World" func DrawHello(gc draw2d.GraphicContext, text string) { draw2d.SetFontFolder("static") gc.SetFontData(draw2d.FontData{ Name: "Roboto", }) gc.SetFontSize(14) l, t, r, b := gc.GetStringBounds(text) //log.Println(t, l, r, b) draw2dkit.Rectangle(gc, 0, 0, r-l+30, b-t+30) gc.SetFillColor(image.White) gc.FillStroke() draw2dkit.Rectangle(gc, 10, 10, r-l+20, b-t+20) gc.SetFillColor(image.White) gc.FillStroke() gc.SetFillColor(color.NRGBA{R: 255, G: 0, B: 0, A: 255}) gc.FillStringAt(text, 15-l, 15-t) }