refactor: 更新 ResizeImageByMaxHeight2Image 函数,支持处理 GIF 格式并返回多个图像及延迟信息,支持返回GIF结果

This commit is contained in:
lixiangwuxian
2025-05-13 23:41:19 +08:00
parent 1ec5e051e9
commit 89b672be8d
5 changed files with 56 additions and 17 deletions

View File

@@ -571,13 +571,14 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
log.Default().Printf("渲染文字失败err:%v", err)
}
avatar, err := util.ResizeImageByMaxHeight2Image(filePath, uint(textImg.Bounds().Dy()))
avatar, delay, err := util.ResizeImageByMaxHeight2Image(filePath, uint(textImg.Bounds().Dy()))
if err != nil {
log.Default().Printf("缩放头像失败url:%s,err:%v", p.Avatar, err)
}
avatarSpirit := sprite.Sprite{
Name: "avatar",
Images: []image.Image{avatar},
Images: avatar,
Delay: delay,
Index: 1,
}
if avatar == nil {
@@ -606,7 +607,12 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string {
Position: image.Point{X: minX - 5, Y: minY - 5},
}
baseboard.AddSprite(&backgroundSpirit)
if len(avatarSpirit.Images) > 1 {
if err := baseboard.SaveToGIF(util.GenTempFilePath("cbl.gif")); err != nil {
log.Default().Printf("保存图片失败err:%v", err)
}
return util.GenTempFilePath("cbl.gif")
}
if err := baseboard.SaveToPng(util.GenTempFilePath("cbl.png")); err != nil {
log.Default().Printf("保存图片失败err:%v", err)
}