MCPcopy
hub / github.com/FloatTech/ZeroBot-Plugin / drawScore16

Function drawScore16

plugin/score/draw.go:29–129  ·  view source on GitHub ↗
(a *scdata)

Source from the content-addressed store, hash-verified

27type scoredrawer func(a *scdata) (image.Image, error)
28
29func drawScore16(a *scdata) (image.Image, error) {
30 // 绘图
31 getAvatar, err := initPic(a.picfile, a.uid)
32 if err != nil {
33 return nil, err
34 }
35 back, err := fio.LoadImage(a.picfile)
36 if err != nil {
37 return nil, err
38 }
39 // 避免图片过大,最大 1280*720
40 back = factory.Limit(back, 1280, 720)
41 imgDX := back.Bounds().Dx()
42 imgDY := back.Bounds().Dy()
43 canvas := gg.NewContext(imgDX, imgDY)
44 // draw Aero Style
45 aeroStyle := gg.NewContext(imgDX-202, imgDY-202)
46 aeroStyle.DrawImage(imaging.Blur(back, 2.5), -100, -100)
47 // aero draw image.
48 aeroStyle.DrawRoundedRectangle(0, 0, float64(imgDX-200), float64(imgDY-200), 16)
49 // SideLine
50 aeroStyle.SetLineWidth(3)
51 aeroStyle.SetRGBA255(255, 255, 255, 100)
52 aeroStyle.StrokePreserve()
53 aeroStyle.SetRGBA255(255, 255, 255, 140)
54 // fill
55 aeroStyle.Fill()
56 // draw background
57 canvas.DrawImage(back, 0, 0)
58 // Aero style combine
59 canvas.DrawImage(aeroStyle.Image(), 100, 100)
60 canvas.Fill()
61 hourWord := getHourWord(time.Now())
62 avatar, _, err := image.Decode(bytes.NewReader(getAvatar))
63 if err != nil {
64 return nil, err
65 }
66 avatarf := factory.Size(avatar, 200, 200)
67 canvas.DrawImage(avatarf.Circle(0).Image(), 120, 120)
68 // draw info(name,coin,etc)
69 canvas.SetRGB255(0, 0, 0)
70 data, err := file.GetLazyData(text.BoldFontFile, control.Md5File, true)
71 if err != nil {
72 return nil, err
73 }
74 if err = canvas.ParseFontFace(data, 50); err != nil {
75 return nil, err
76 }
77 // draw head
78 canvas.DrawStringWrapped(a.nickname, 350, 180, 0.5, 0.5, 0.5, 0.5, gg.AlignLeft)
79 canvas.Fill()
80 // main draw
81 data, err = file.GetLazyData(text.FontFile, control.Md5File, true)
82 if err != nil {
83 return nil, err
84 }
85 if err = canvas.ParseFontFace(data, 30); err != nil {
86 return nil, err

Callers

nothing calls this directly

Calls 4

initPicFunction · 0.85
getHourWordFunction · 0.85
getrankFunction · 0.85
FormatMethod · 0.80

Tested by

no test coverage detected