MCPcopy Create free account
hub / github.com/FloatTech/NanoBot-Plugin / floatstyle

Function floatstyle

plugin/score/draw.go:23–170  ·  view source on GitHub ↗
(a *scoredata)

Source from the content-addressed store, hash-verified

21)
22
23func floatstyle(a *scoredata) (img image.Image, err error) {
24 fontdata, err := file.GetLazyData(text.GlowSansFontFile, nano.Md5File, false)
25 if err != nil {
26 return
27 }
28
29 picFile, getAvatar, err := initPic(a.avatarurl)
30 if err != nil {
31 return
32 }
33 a.picfile = picFile
34
35 back, err := gg.LoadImage(a.picfile)
36 if err != nil {
37 return
38 }
39
40 bx, by := float64(back.Bounds().Dx()), float64(back.Bounds().Dy())
41
42 sc := 1280 / bx
43
44 colors := gg.TakeColor(back, 3)
45
46 canvas := gg.NewContext(1280, 1280*int(by)/int(bx))
47
48 cw, ch := float64(canvas.W()), float64(canvas.H())
49
50 sch := ch * 6 / 10
51
52 var blurback, scbackimg, backshadowimg, avatarimg, avatarbackimg, avatarshadowimg, whitetext, blacktext image.Image
53 var wg sync.WaitGroup
54
55 wg.Add(2)
56 go func() {
57 defer wg.Done()
58 scback := gg.NewContext(canvas.W(), canvas.H())
59 scback.ScaleAbout(sc, sc, cw/2, ch/2)
60 scback.DrawImageAnchored(back, canvas.W()/2, canvas.H()/2, 0.5, 0.5)
61 scback.Identity()
62
63 go func() {
64 defer wg.Done()
65 blurback = imaging.Blur(scback.Image(), 20)
66 }()
67
68 scbackimg = rendercard.Fillet(scback.Image(), 12)
69 }()
70
71 wg.Add(1)
72 go func() {
73 defer wg.Done()
74 pureblack := gg.NewContext(canvas.W(), canvas.H())
75 pureblack.SetRGBA255(0, 0, 0, 255)
76 pureblack.Clear()
77
78 shadow := gg.NewContext(canvas.W(), canvas.H())
79 shadow.ScaleAbout(0.6, 0.6, cw-cw/3, ch/2)
80 shadow.DrawImageAnchored(pureblack.Image(), canvas.W()-canvas.W()/3, canvas.H()/2, 0.5, 0.5)

Callers 1

initFunction · 0.85

Calls 3

initPicFunction · 0.85
customrectangleFunction · 0.85
customtextFunction · 0.85

Tested by

no test coverage detected