(a *scdata)
| 129 | } |
| 130 | |
| 131 | func 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 | |
| 186 | func drawScore17(a *scdata) (image.Image, error) { |
| 187 | getAvatar, err := initPic(a.picfile, a.uid) |
nothing calls this directly
no test coverage detected