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
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/chromedp/cdproto v0.0.0-20241003230502-a4a8f7c660df
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/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/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/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=

View File

@ -10,8 +10,8 @@ import (
"strings"
"time"
"git.lxtend.com/lixiangwuxian/imagedd/font2img"
"git.lxtend.com/lixiangwuxian/imagedd/sprite"
"git.lxtend.com/lixiangwuxian/imagedd/text2img"
"git.lxtend.com/qqbot/message"
"git.lxtend.com/qqbot/util"
)
@ -566,7 +566,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
sb.WriteString(fmt.Sprintf("回放被观看次数 %d", p.ReplaysWatched))
}
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 {
log.Default().Printf("渲染文字失败err:%v", err)
}
@ -576,20 +576,20 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
log.Default().Printf("缩放头像失败url:%s,err:%v", p.Avatar, err)
}
avatarSpirit := sprite.Sprite{
Name: "avatar",
Image: avatar,
Index: 1,
Name: "avatar",
Images: []image.Image{avatar},
Index: 1,
}
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)
textSpirit := sprite.Sprite{
Name: "text",
Image: textImg,
Images: []image.Image{textImg},
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)
@ -601,7 +601,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
draw.Draw(background, background.Bounds(), image.White, image.Point{}, draw.Src)
backgroundSpirit := sprite.Sprite{
Name: "background",
Image: background,
Images: []image.Image{background},
Index: 0,
Position: image.Point{X: minX - 5, Y: minY - 5},
}

View File

@ -10,8 +10,8 @@ import (
"strings"
"time"
"git.lxtend.com/lixiangwuxian/imagedd/font2img"
"git.lxtend.com/lixiangwuxian/imagedd/sprite"
"git.lxtend.com/lixiangwuxian/imagedd/text2img"
"git.lxtend.com/qqbot/message"
"git.lxtend.com/qqbot/util"
)
@ -385,7 +385,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
sb.WriteString(fmt.Sprintf("回放被观看次数 %d", p.ReplaysWatched))
}
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 {
log.Default().Printf("渲染文字失败err:%v", err)
}
@ -395,20 +395,20 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
log.Default().Printf("缩放头像失败url:%s,err:%v", p.ProfilePicture, err)
}
avatarSpirit := sprite.Sprite{
Name: "avatar",
Image: avatar,
Index: 1,
Name: "avatar",
Images: []image.Image{avatar},
Index: 1,
}
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)
textSpirit := sprite.Sprite{
Name: "text",
Image: textImg,
Images: []image.Image{textImg},
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)
@ -420,7 +420,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
draw.Draw(background, background.Bounds(), image.White, image.Point{}, draw.Src)
backgroundSpirit := sprite.Sprite{
Name: "background",
Image: background,
Images: []image.Image{background},
Index: 0,
Position: image.Point{X: minX - 5, Y: minY - 5},
}