refactor: 更新 LastDiffToImage 函数,替换 font2img 为 text2img 进行文字渲染,适配新的Sprite接口

This commit is contained in:
lixiangwuxian 2025-05-13 22:33:35 +08:00
parent 9b7faa13a0
commit 1ec5e051e9
4 changed files with 21 additions and 21 deletions

2
go.mod
View File

@ -5,7 +5,7 @@ go 1.23.0
toolchain go1.23.3 toolchain go1.23.3
require ( require (
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250510064143-ba9126d54ac6 git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513115110-2cf9da089612
github.com/bytedance/mockey v1.2.14 github.com/bytedance/mockey v1.2.14
github.com/chromedp/cdproto v0.0.0-20241003230502-a4a8f7c660df github.com/chromedp/cdproto v0.0.0-20241003230502-a4a8f7c660df
github.com/chromedp/chromedp v0.10.0 github.com/chromedp/chromedp v0.10.0

4
go.sum
View File

@ -1,9 +1,9 @@
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250510061940-c492839691e4 h1:yDPaEFsQ7zj9NqLhl2iOY2bswn8+oNcGTl/1geJgeAs=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250510061940-c492839691e4/go.mod h1:luas4p32Wtsywcz+8HsxIB3gf65FDDBa+3XYhm0S2b8=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250510064143-ba9126d54ac6 h1:v1cEHG5kGJN5Tu+3icJ6gfrcwrXJRZQMCu8eb4goEKQ= git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250510064143-ba9126d54ac6 h1:v1cEHG5kGJN5Tu+3icJ6gfrcwrXJRZQMCu8eb4goEKQ=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250510064143-ba9126d54ac6/go.mod h1:luas4p32Wtsywcz+8HsxIB3gf65FDDBa+3XYhm0S2b8= git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250510064143-ba9126d54ac6/go.mod h1:luas4p32Wtsywcz+8HsxIB3gf65FDDBa+3XYhm0S2b8=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513115110-2cf9da089612 h1:ew7YcheoePX1rQ9XQxqvfWLkAdGyCVD3h8LRjO5i/dQ=
git.lxtend.com/lixiangwuxian/imagedd v0.0.0-20250513115110-2cf9da089612/go.mod h1:luas4p32Wtsywcz+8HsxIB3gf65FDDBa+3XYhm0S2b8=
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU= github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=

View File

@ -10,8 +10,8 @@ import (
"strings" "strings"
"time" "time"
"git.lxtend.com/lixiangwuxian/imagedd/font2img"
"git.lxtend.com/lixiangwuxian/imagedd/sprite" "git.lxtend.com/lixiangwuxian/imagedd/sprite"
"git.lxtend.com/lixiangwuxian/imagedd/text2img"
"git.lxtend.com/qqbot/message" "git.lxtend.com/qqbot/message"
"git.lxtend.com/qqbot/util" "git.lxtend.com/qqbot/util"
) )
@ -566,7 +566,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
sb.WriteString(fmt.Sprintf("回放被观看次数 %d", p.ReplaysWatched)) sb.WriteString(fmt.Sprintf("回放被观看次数 %d", p.ReplaysWatched))
} }
text := sb.String() text := sb.String()
textImg, err := font2img.RenderTextToTrimmedImage(nil, text, 24, color.Black, 0, 0) textImg, err := text2img.RenderTextToTrimmedImage(nil, text, 24, color.Black, 0, 0)
if err != nil { if err != nil {
log.Default().Printf("渲染文字失败err:%v", err) log.Default().Printf("渲染文字失败err:%v", err)
} }
@ -577,19 +577,19 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
} }
avatarSpirit := sprite.Sprite{ avatarSpirit := sprite.Sprite{
Name: "avatar", Name: "avatar",
Image: avatar, Images: []image.Image{avatar},
Index: 1, Index: 1,
} }
if avatar == nil { if avatar == nil {
avatarSpirit.Image = image.NewRGBA(image.Rect(0, 0, 0, 0)) avatarSpirit.Images = []image.Image{image.NewRGBA(image.Rect(0, 0, 0, 0))}
} }
baseboard.AddSprite(&avatarSpirit) baseboard.AddSprite(&avatarSpirit)
textSpirit := sprite.Sprite{ textSpirit := sprite.Sprite{
Name: "text", Name: "text",
Image: textImg, Images: []image.Image{textImg},
Index: 2, Index: 2,
Position: image.Point{X: avatarSpirit.Position.X + avatarSpirit.Image.Bounds().Dx() + 3, Y: 0}, Position: image.Point{X: avatarSpirit.Position.X + avatarSpirit.Images[0].Bounds().Dx() + 3, Y: 0},
} }
baseboard.AddSprite(&textSpirit) baseboard.AddSprite(&textSpirit)
@ -601,7 +601,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
draw.Draw(background, background.Bounds(), image.White, image.Point{}, draw.Src) draw.Draw(background, background.Bounds(), image.White, image.Point{}, draw.Src)
backgroundSpirit := sprite.Sprite{ backgroundSpirit := sprite.Sprite{
Name: "background", Name: "background",
Image: background, Images: []image.Image{background},
Index: 0, Index: 0,
Position: image.Point{X: minX - 5, Y: minY - 5}, Position: image.Point{X: minX - 5, Y: minY - 5},
} }

View File

@ -10,8 +10,8 @@ import (
"strings" "strings"
"time" "time"
"git.lxtend.com/lixiangwuxian/imagedd/font2img"
"git.lxtend.com/lixiangwuxian/imagedd/sprite" "git.lxtend.com/lixiangwuxian/imagedd/sprite"
"git.lxtend.com/lixiangwuxian/imagedd/text2img"
"git.lxtend.com/qqbot/message" "git.lxtend.com/qqbot/message"
"git.lxtend.com/qqbot/util" "git.lxtend.com/qqbot/util"
) )
@ -385,7 +385,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
sb.WriteString(fmt.Sprintf("回放被观看次数 %d", p.ReplaysWatched)) sb.WriteString(fmt.Sprintf("回放被观看次数 %d", p.ReplaysWatched))
} }
text := sb.String() text := sb.String()
textImg, err := font2img.RenderTextToTrimmedImage(nil, text, 24, color.Black, 0, 0) textImg, err := text2img.RenderTextToTrimmedImage(nil, text, 24, color.Black, 0, 0)
if err != nil { if err != nil {
log.Default().Printf("渲染文字失败err:%v", err) log.Default().Printf("渲染文字失败err:%v", err)
} }
@ -396,19 +396,19 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
} }
avatarSpirit := sprite.Sprite{ avatarSpirit := sprite.Sprite{
Name: "avatar", Name: "avatar",
Image: avatar, Images: []image.Image{avatar},
Index: 1, Index: 1,
} }
if avatar == nil { if avatar == nil {
avatarSpirit.Image = image.NewRGBA(image.Rect(0, 0, 0, 0)) avatarSpirit.Images = []image.Image{image.NewRGBA(image.Rect(0, 0, 0, 0))}
} }
baseboard.AddSprite(&avatarSpirit) baseboard.AddSprite(&avatarSpirit)
textSpirit := sprite.Sprite{ textSpirit := sprite.Sprite{
Name: "text", Name: "text",
Image: textImg, Images: []image.Image{textImg},
Index: 2, Index: 2,
Position: image.Point{X: avatarSpirit.Position.X + avatarSpirit.Image.Bounds().Dx() + 3, Y: 0}, Position: image.Point{X: avatarSpirit.Position.X + avatarSpirit.Images[0].Bounds().Dx() + 3, Y: 0},
} }
baseboard.AddSprite(&textSpirit) baseboard.AddSprite(&textSpirit)
@ -420,7 +420,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
draw.Draw(background, background.Bounds(), image.White, image.Point{}, draw.Src) draw.Draw(background, background.Bounds(), image.White, image.Point{}, draw.Src)
backgroundSpirit := sprite.Sprite{ backgroundSpirit := sprite.Sprite{
Name: "background", Name: "background",
Image: background, Images: []image.Image{background},
Index: 0, Index: 0,
Position: image.Point{X: minX - 5, Y: minY - 5}, Position: image.Point{X: minX - 5, Y: minY - 5},
} }