| 289 | return canvas.Image(), nil |
| 290 | } |
| 291 | func 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 |