MCPcopy Index your code
hub / github.com/FloatTech/ZeroBot-Plugin / drawEquipInfoBlock

Function drawEquipInfoBlock

plugin/mcfish/pack.go:291–385  ·  view source on GitHub ↗
(equipInfo equip, fontdata []byte)

Source from the content-addressed store, hash-verified

289 return canvas.Image(), nil
290}
291func drawEquipInfoBlock(equipInfo equip, fontdata []byte) (image.Image, error) {
292 canvas := gg.NewContext(1, 1)
293 err := canvas.ParseFontFace(fontdata, 100)
294 if err != nil {
295 return nil, err
296 }
297 _, titleH := canvas.MeasureString("装备信息")
298 err = canvas.ParseFontFace(fontdata, 50)
299 if err != nil {
300 return nil, err
301 }
302 _, textH := canvas.MeasureString("装备信息")
303
304 backDY := math.Max(int(10+titleH*2+(textH*2)*4+10), 300)
305
306 canvas = gg.NewContext(1000, backDY)
307 // 画底色
308 canvas.DrawRectangle(0, 0, 1000, float64(backDY))
309 canvas.SetRGBA255(255, 255, 255, 150)
310 canvas.Fill()
311 // 边框框
312 canvas.DrawRectangle(0, 0, 1000, float64(backDY))
313 canvas.SetLineWidth(3)
314 canvas.SetRGBA255(0, 0, 0, 255)
315 canvas.Stroke()
316 getAvatar, err := engine.GetLazyData(equipInfo.Equip+".png", false)
317 if err != nil {
318 return nil, err
319 }
320 equipPic, _, err := image.Decode(bytes.NewReader(getAvatar))
321 if err != nil {
322 return nil, err
323 }
324 picDy := float64(backDY) - 10 - titleH*2
325 equipPic = factory.Size(equipPic, int(picDy)-10, int(picDy)-10).Image()
326 canvas.DrawImage(equipPic, 10, 10+int(titleH)*2)
327
328 // 放字
329 canvas.SetColor(color.Black)
330 if err = canvas.ParseFontFace(fontdata, 100); err != nil {
331 return nil, err
332 }
333 titleW, titleH := canvas.MeasureString("装备信息")
334 canvas.DrawString("装备信息", 10, 10+titleH*1.2)
335 canvas.DrawLine(10, titleH*1.6, titleW, titleH*1.6)
336 canvas.SetLineWidth(3)
337 canvas.SetRGBA255(0, 0, 0, 255)
338 canvas.Stroke()
339
340 textDx := picDy + 10
341 textDy := 10 + titleH*2
342 if err = canvas.ParseFontFace(fontdata, 75); err != nil {
343 return nil, err
344 }
345 textW, textH := canvas.MeasureString(equipInfo.Equip)
346 canvas.DrawStringAnchored(equipInfo.Equip, textDx+textW/2, textDy+textH/2, 0.5, 0.5)
347
348 textDy += textH * 1.5

Callers 1

drawPackImageFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected