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

Function drawScore15

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

Source from the content-addressed store, hash-verified

129}
130
131func drawScore15(a *scdata) (image.Image, error) {
132 // 绘图
133 _, err := initPic(a.picfile, a.uid)
134 if err != nil {
135 return nil, err
136 }
137 back, err := fio.LoadImage(a.picfile)
138 if err != nil {
139 return nil, err
140 }
141 // 避免图片过大,最大 1280*720
142 back = factory.Limit(back, 1280, 720)
143 canvas := gg.NewContext(back.Bounds().Size().X, int(float64(back.Bounds().Size().Y)*1.7))
144 canvas.SetRGB(1, 1, 1)
145 canvas.Clear()
146 canvas.DrawImage(back, 0, 0)
147 monthWord := time.Now().Format("01/02")
148 hourWord := getHourWord(time.Now())
149 _, err = file.GetLazyData(text.BoldFontFile, control.Md5File, true)
150 if err != nil {
151 return nil, err
152 }
153 if err = canvas.LoadFontFace(text.BoldFontFile, float64(back.Bounds().Size().X)*0.1); err != nil {
154 return nil, err
155 }
156 canvas.SetRGB(0, 0, 0)
157 canvas.DrawString(hourWord, float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.2)
158 canvas.DrawString(monthWord, float64(back.Bounds().Size().X)*0.6, float64(back.Bounds().Size().Y)*1.2)
159 _, err = file.GetLazyData(text.FontFile, control.Md5File, true)
160 if err != nil {
161 return nil, err
162 }
163 if err = canvas.LoadFontFace(text.FontFile, float64(back.Bounds().Size().X)*0.04); err != nil {
164 return nil, err
165 }
166 canvas.DrawString(a.nickname+fmt.Sprintf(" %s+%d", wallet.GetWalletName(), a.inc), float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.3)
167 canvas.DrawString("当前"+wallet.GetWalletName()+":"+strconv.FormatInt(int64(a.score), 10), float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.4)
168 canvas.DrawString("LEVEL:"+strconv.FormatInt(int64(a.rank), 10), float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.5)
169 canvas.DrawRectangle(float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.55, float64(back.Bounds().Size().X)*0.6, float64(back.Bounds().Size().Y)*0.1)
170 canvas.SetRGB255(150, 150, 150)
171 canvas.Fill()
172 var nextrankScore int
173 if a.rank < 10 {
174 nextrankScore = rankArray[a.rank+1]
175 } else {
176 nextrankScore = SCOREMAX
177 }
178 canvas.SetRGB255(0, 0, 0)
179 canvas.DrawRectangle(float64(back.Bounds().Size().X)*0.1, float64(back.Bounds().Size().Y)*1.55, float64(back.Bounds().Size().X)*0.6*float64(a.level)/float64(nextrankScore), float64(back.Bounds().Size().Y)*0.1)
180 canvas.SetRGB255(102, 102, 102)
181 canvas.Fill()
182 canvas.DrawString(fmt.Sprintf("%d/%d", a.level, nextrankScore), float64(back.Bounds().Size().X)*0.75, float64(back.Bounds().Size().Y)*1.62)
183 return canvas.Image(), nil
184}
185
186func drawScore17(a *scdata) (image.Image, error) {
187 getAvatar, err := initPic(a.picfile, a.uid)

Callers

nothing calls this directly

Calls 3

initPicFunction · 0.85
getHourWordFunction · 0.85
FormatMethod · 0.80

Tested by

no test coverage detected